LoaderManager使数据脱机,然后在线

时间:2012-06-01 19:34:11

标签: android android-asynctask android-loadermanager android-loader

我想遵循这个漂亮的可用性模式,其中应用程序将数据离线存储以获得更快的响应,并在网上获取新数据时对其进行更新。

我将LoadersLoaderManager一起使用。

现在,使用Loaders实施上述方法的正确方法是什么?

目前我使用两种方法,它们有缺点,而且通常不是很优雅。

  1. 将数据存储在应用程序上下文中而不是SQLite
  2. 两个单独的AsyncTaskLoaders - offlineLoaderonlineLoader。第一个从SQLite数据库中获取数据并立即显示它,如果它在那里,第二个从外部服务器加载数据,将其写入数据库(用于offlineLoader)并替换脱机数据
  3. 我真正想要的是:

    单个Loader,它脱机获取数据并将其返回到LoaderManager,但之后继续工作并在准备好后返回新的在线数据。所以它应该返回两次 - 它甚至可能吗?

1 个答案:

答案 0 :(得分:1)

解决方案是将ContentProvider的{​​{1}}个加载数据用于用户界面和Loader下载数据并将其推送到数据库中(并通知Service和应用程序的其余部分,它已被更改)。