4

有几个关于如何实现自定义 AsyncTaskLoaders 的教程,但我发现没有一个教程讨论如何处理数据缓存 - 在所有这些教程中,数据只是加载和交付。

您能否给我一些提示,如何实现自定义 AsyncTaskLoader,它会立即返回缓存的数据版本,但同时请求更新数据并在它们到达时立即提供更新的版本?这甚至可以通过装载机实现,还是我必须使用另一种机制?

背景:我有一个 IntentService,它接受数据加载请求并以广播的形式传递结果。我有一个 UI (ListView) 应该显示来自 ArrayAdapter 或 CrusorAdapter 的数据。我需要一些“缓存”层来保持数据的最新已知版本立即显示,但一旦有新数据到达,就会发布它们的更新并重新显示它们。

虽然这可以通过使用哑 SQLite 数据库来实现即时版本和广播接收器来完成新数据更新,但我会优先考虑一些可以使这种“backgorund”数据加载机制透明的东西,就像 Loader 派生类恕我直言。

4

1 回答 1

-1

是的,AsycnTask这是最好的方法。您所要做的就是onPostExecute()AsyncTask. 这可以通过创建一个比较数据时间的时间戳来完成,如果有新时间,则使用该数据。否则,您将不得不比较所有数据,这可能会花费宝贵的时间和资源,因此这取决于您拥有多少数据。

这是一个可能有帮助的链接:

http://developer.android.com/training/efficient-downloads/redundant_redundant.html

于 2012-08-21T13:17:20.453 回答