0

我想遵循这个很好的可用性模式,应用程序离线存储数据以获得更快的响应,并在它在线获取新数据时更新它。

我使用Loaderswith LoaderManager

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

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

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

我真正想要的是:

一个加载器,它离线获取数据并将其返回给 LoaderManager,但之后继续工作并在准备好时返回新的在线数据。所以它应该返回两次 - 甚至可能吗?

4

1 回答 1

1

解决方案是使用ContentProvidersLoader将数据加载到 UI 并Services 下载数据并将其推送到数据库中(并通知ContentProvider应用程序的其余部分,它已被更改)。

于 2012-06-02T22:34:15.503 回答