Android LoaderManager脱机获取数据,然后联机

Android LoaderManager脱机获取数据,然后联机,android,android-asynctask,android-loadermanager,android-loader,Android,Android Asynctask,Android Loadermanager,Android Loader,我希望遵循这种良好的可用性模式,即应用程序离线存储数据以获得更快的响应,并在新数据在线时进行更新 我将装入器与装入器管理器一起使用 现在,用加载程序实现上述方法的正确方法是什么? 目前我使用两种方法,它们都有缺点,而且通常都不是很优雅 在应用程序上下文而不是SQLite中存储数据 两个独立的AsyncTaskLoader-离线加载程序和在线加载程序。第一个从SQLite数据库中获取数据并立即显示(如果存在),第二个从外部服务器加载数据,将其写入数据库(对于offlineLoader)并替换脱机数

我希望遵循这种良好的可用性模式,即应用程序离线存储数据以获得更快的响应,并在新数据在线时进行更新

我将
装入器
装入器管理器
一起使用

现在,用
加载程序实现上述方法的正确方法是什么?

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

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


    一个加载程序,脱机获取数据并将其返回给LoaderManager,但随后继续工作,并在准备就绪时返回新的联机数据。因此它应该返回两次-可能吗?

    解决方案是使用
    ContentProvider
    s和
    Loader
    s将数据加载到UI和
    Service
    s下载数据并将其推送到数据库中(并通知
    ContentProvider
    和应用程序的其他部分,数据已被更改).

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