Android LoaderManager脱机获取数据,然后联机
我希望遵循这种良好的可用性模式,即应用程序离线存储数据以获得更快的响应,并在新数据在线时进行更新 我将Android LoaderManager脱机获取数据,然后联机,android,android-asynctask,android-loadermanager,android-loader,Android,Android Asynctask,Android Loadermanager,Android Loader,我希望遵循这种良好的可用性模式,即应用程序离线存储数据以获得更快的响应,并在新数据在线时进行更新 我将装入器与装入器管理器一起使用 现在,用加载程序实现上述方法的正确方法是什么? 目前我使用两种方法,它们都有缺点,而且通常都不是很优雅 在应用程序上下文而不是SQLite中存储数据 两个独立的AsyncTaskLoader-离线加载程序和在线加载程序。第一个从SQLite数据库中获取数据并立即显示(如果存在),第二个从外部服务器加载数据,将其写入数据库(对于offlineLoader)并替换脱机数
装入器
与装入器管理器
一起使用
现在,用加载程序实现上述方法的正确方法是什么?
目前我使用两种方法,它们都有缺点,而且通常都不是很优雅
AsyncTaskLoader
-离线加载程序
和在线加载程序
。第一个从SQLite数据库中获取数据并立即显示(如果存在),第二个从外部服务器加载数据,将其写入数据库(对于offlineLoader)并替换脱机数据一个加载程序,脱机获取数据并将其返回给LoaderManager,但随后继续工作,并在准备就绪时返回新的联机数据。因此它应该返回两次-可能吗?解决方案是使用
ContentProvider
s和Loader
s将数据加载到UI和Service
s下载数据并将其推送到数据库中(并通知ContentProvider
和应用程序的其他部分,数据已被更改).现在我想了想,应该是覆盖ondeliveresult()
开始下载在线数据的问题了。。。有人告诉我,如果我错了,但我会尝试这种方法