Google IO Rest设计模式,已完成的ContentProvider现已停止

Sam*_*Sam 30 rest android android-service android-contentprovider googleio

因此,在观看关于此主题的非常有名的视频后,我决定采用设计模式B.使用带有servicehelper的contentprovider.

谷歌设计模式休息

基本上我有以下文件:

  • MYPROVIDER
  • MyDatabase的
  • Mycontract

在活动中,我现在可以获取contentresolver并查询提供者.到目前为止一切都很好.

现在我需要同步我的contentprovider以从REST API获取数据.因此,我需要实现服务帮助程序服务和Rest方法.研究谷歌IO应用程序已经帮助了我很多,我是Android的新手所以它仍然很难搞清楚.

我看到谷歌使用RemoteHandlers来处理外部数据,我猜他们是图中的处理器类?

我不明白的是我如何实现servicehelper +服务部分来从网络获取数据.

  • 我在哪里打电话给服务助手?
  • 服务和助手需要做什么?
  • 这个确切的设计模式有什么好的例子吗?

我已经在堆栈上阅读了几个关于此的主题,所有这些都提出了不同的方法 我找到了一个声明restprovider的示例,然后myProvider必须扩展该提供程序.我不喜欢这些解决方案,并希望遵循这种结构化设计模式.我希望你们能帮助我!

Chr*_*ipp 20

根据我的理解,模式是:

  • 不要显示空活动并在后台加载内容.加载失败时,您无法显示任何内容.
  • 而是显示存储在数据库中的数据,可通过内容提供程序和适配器访问 - 这可确保用户始终查看内容
  • 在后台获取新数据,一旦数据在手机上,活动就会通过适配器自动更新

对你的问题(我改变了顺序):

我在哪里打电话给服务助手?
我从Vigils谈话中选择了模式A. 在这种情况下,通话取决于您的申请.您可以在应用程序启动时,创建活动时或用户选择更新按钮时触发更新.我会选择创建活动.

您已选择模式B.在这种情况下,很明显内容提供商必须触发更新.什么时候?获取新数据:在创建时或第一次读取访问后.我会用创作时间.用于在内容提供商中执行相应操作后创建,更新,删除.

这个确切的设计模式有什么好的例子吗?
从我的帖子在/sf/answers/608574361/:唯一的开源参考实现,我所知道的是下可用http://datadroid.foxykeep.com.它是一个可以在您自己的应用程序中使用的库.该架构在/ presentation下解释 - 请务必阅读.

服务助手需要做什么?
如果你看一下幻灯片19 中的幻灯片,它就是一个单例,它封装了对服务的调用,并通过请求ID处理异步调用.

服务需要做什么?
服务(演示文稿中的幻灯片17)仅确保在后台执行操作.