【问题标题】:LoaderManager get data offline, then onlineLoaderManager 离线获取数据,然后在线
【发布时间】:2012-06-01 19:34:10
【问题描述】:

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

我使用LoadersLoaderManager

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

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

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

我真正想要的是:

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

【问题讨论】:

  • 现在我想了想,应该是覆盖onDeliverResult()开始下载在线数据的问题...如果我错了,请告诉我,但我会尝试这种方法

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


【解决方案1】:

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

【讨论】:

    猜你喜欢
    • 2018-09-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-08-03
    • 2011-12-12
    相关资源
    最近更新 更多