2013-09-23 113 views
0

我正在尝试编写一个本地(远程?)服务,它的唯一职责是定期检查一组远程URL以查看是否发生了某些更改(并且在本例中更新其服务拥有相应的DB)。同步服务

SyncAdapter不是可能的选择的原因是我不能使用LoginManger:我通过网页表单执行登录,通过SAML,确切地说是第三方网站,保持会话使用一组cookie。没有认证令牌,没有无限的会话。因此,没有LoginManager,最终没有SyncAdapter。另一方面,SyncAdapter处理很多我想要做的事情,但我不知道如何:它以非严格的时间表触发更新过程,但基于电池状态,网络信号力量等等。通过这种方式,同步几乎是连续的,如果我收到邮件,则Gmail应用程序会在3秒后通知它。

我想写我自己的服务,它允许用户更新应用程序数据库(我不在乎它是否每天一两次,实际上更新很少但很重要),这不会导致电池消耗,以及(如果可能的话,不重要),可以通过前景活动来触发/停止。

+0

你到底在找什么?你需要帮助来写一个服务?或者确认“SyncAdapter”不适合您的情况? – jboi

+0

我只需要解决我的问题。由于我已经知道调度远程服务可能会导致电池耗尽,并且由于我无法使用同步适配器,我该怎么办? – Gianluca

回答

1

你提到了两种可能性。一个由自己做同步,另一个与“不那么有据可查” SyncAdapter,可供由于Android 2.

是有利弊两个:

  • 书面服务自是定义明确,并有大量的示例和文档。
  • 即使Google管理员也并不真正了解SyncAdapter。我在Google的IO上看过演示文稿。他们谈论电池耗尽问题,但根本没有提及SyncAdapter。
  • 另一方面,SyncAdapter具有您需要的所有功能(可能更多)。你必须建立空的班级,例如授权让它启动并运行。

我建议试试SynvAdapter。我理解这个概念并让我的第一个应用程序正常运行的方式是使用这个SyncAdapter Concept overview