我正在尝试编写本地(远程?)服务,其唯一的职责是定期检查一组远程URL,以查看是否发生了某些更改(在这种情况下,更新自己的数据库)相应地)。
SyncAdapter
不是可能选择的原因是我无法使用LoginManger
:我通过网络表单登录到第三方网站(通过SAML,确切地说,使用一组cookie保持会话。没有身份验证令牌,没有无限会话。因此,没有LoginManager
,最终没有SyncAdapter
。
另一方面,SyncAdapter会处理很多我真正想做的事情,但我不知道如何:它以非严格的时间表触发更新过程,但是基于电池状态,网络信号强度, 等等。通过这种方式,同步几乎是连续的,如果我收到邮件,Gmail应用程序会通知它3,可能是4秒钟。
我想编写自己的服务,允许用户更新应用程序数据库(我不在乎它是否立即或每天两次,更新很少但实际上很重要),这不会导致电池排水,以及(如果可能,不重要),可以通过前景活动解雇/停止。
答案 0 :(得分:1)
你提到了两种可能性。一个是你自己和另一个同步的“没有很好记录的”SyncAdapter
,这是自Android 2以来可用的。
两者都有利弊:
我建议尝试使用SynvAdapter。我理解这个概念并让我的第一个应用程序启动并运行的方式是SyncAdapter Concept overview