0

我正在尝试编写一个本地(远程?)服务,其唯一职责是定期检查一组远程 URL,以查看是否发生了某些更改(并且在这种情况下,相应地更新其自己的数据库)。

不是可能的选择的原因SyncAdapter是我不能使用 a LoginManger:我通过 Web 表单执行登录到第三方网站(准确地说是通过 SAML),使用一组 cookie 保持会话. 没有身份验证令牌,没有无限会话。因此,不LoginManager,最终,不SyncAdapter

另一方面,SyncAdapter 处理了很多我真正想做的事情,但我不知道如何:它以非严格的时间表触发更新过程,但基于电池状态、网络信号强度等上。这样同步几乎是连续的,如果我收到一封邮件,Gmail 应用程序会在 3 秒后通知它,也许 4 秒后。

我想编写自己的服务,它允许用户更新应用程序数据库(我不在乎是立即更新还是每天两次,更新很少但实际上很重要),这不会导致电池耗尽,并且也(如果可能,不是至关重要的),可以由前台活动触发/停止。

4

1 回答 1

1

你提到了两种可能性。一个是你自己做同步,另一个是“文档不太好” SyncAdapter,从 Android 2 开始就可以使用。

两者各有利弊:

  • 一个自写的服务定义良好,并且有大量的示例和文档。
  • 甚至 Google 经理也没有真正了解 SyncAdapter。我在 Google 的 IO 上看过演示文稿。他们谈论电池耗尽的问题,但根本没有提到 SyncAdapter。
  • 另一方面,SyncAdapter 具有您需要的所有功能(可能更多)。您必须构建空类,例如,授权才能启动和运行。

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

于 2013-09-23T11:56:36.990 回答