在我的应用程序运行时保持List<String[]>
的最佳方法是什么?我的方法有问题。它大部分时间都给我一个OutOfMemory错误,因为列表太大了。
List<String[]>
是解析我在线下载的csv文件的结果。我所做的是在一个活动中解析csv然后将其结果保存在静态类成员中,如:
String url = "http://xxx/pdf/pms/pms_test.csv";
try {
InputStream input = new URL(url).openStream();
CSVReader reader = new CSVReader(new InputStreamReader(input));
SchedController.sched = reader.readAll();
input.close();
}
...然后在不同的活动上访问ClassName.sched
。
我正在这样做,以便解析的数据将在每个活动中可用...而且我不必再次解析。我该怎么做才能改善它?
答案 0 :(得分:1)
我认为你可以采用两种方法。
答案 1 :(得分:1)
只是为了补充Paresh的评论。 我可以建议我在我的应用程序中使用的类似内容。
例如,我需要显示商店中的商品列表。 (每个项目都有ID,名称和费用)。
为实现此目的,我首先向服务器发出请求以获取项目数,例如 itemCount 。
现在我设置页面中显示的项目数限制为100。
如果 itemCount 大于100,我会显示一条警告,说明只会显示100个项目,并且可以添加下一个button
来下载下一组项目。
或者,如果是搜索,您可以要求用户返回并优化搜索。
如果 itemCount 小于100,那么您将不会遇到任何问题
这样可以实现分页以避免OutOfMemory
问题