0

我有一个场景,我必须执行以下任务: 1. 填充列表视图。2.执行数据库操作,这是非常耗时的任务。3. 数据库处理/操作时间有时是不可预测的。

我使用了持有者模式的 listView,现在它比以前工作得更快,但仍然需要大量时间。我还能做些什么来提高性能。我有一个想法,但我担心它是否会很好实施。想法是将数据库操作放在 AsyncTask 中并仅在那里更新我的列表视图。但我害怕这样做是因为我的列表视图完全依赖于数据库结果。所以只有当我完成数据库操作时,我才能在 Listview 上显示一些东西

请建议使用异步任务将是一个好方法,请提出任何其他想法。

4

1 回答 1

0

使用 Holder 方法很好。始终在您的适配器中使用它。确保您也在重用转换视图。

使用 anAsyncTask是最好的选择。但是您不必等待整个操作完成。阅读如何AsyncTask工作。使用您的方法publishProgress()将批量数据提供给您的列表。doInBackground()AsyncTask

例如,如果您必须处理 100 行,则处理 10 行,然后执行publishProgress()将使用这 10 行更新列表的操作。当您处理下一批时,publishProgress()再次更新列表。

于 2012-12-11T15:36:29.863 回答