带缓存的自定义AsyncTaskLoader

时间:2012-08-21 12:54:44

标签: android parallel-processing asynctaskloader

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

您能否给我一些提示,告诉我如何实现自定义AsyncTaskLoader,它会立即返回数据的缓存版本,但同时请求更新数据并在它们到达后立即提供更新的数据?这对装载机来说是否可行,或者我是否必须使用其他机制?

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

虽然这可以使用愚蠢的SQLite数据库用于即时版本和广播接收器用于新数据更新,但我会优先考虑使这种“backgorund”数据加载机制透明,如Loader派生类IMHO可能是

1 个答案:

答案 0 :(得分:-1)

是的,AsycnTask是执行此操作的最佳方式。您要做的就是在onPostExecute()的{​​{1}}上写入缓存。这可以通过创建比较数据时间的时间戳来完成,如果有新的时间,则使用该数据。否则,您将不得不比较所有数据,这可能需要宝贵的时间和资源,因此这将取决于您拥有多少数据。

这是一个可能有用的链接:

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