【问题标题】:How to enable sync without syncing every few seconds如何启用同步而不每隔几秒同步一次
【发布时间】:2014-05-08 15:02:56
【问题描述】:

我使用 Google 的 Android 开发者文档 (http://developer.android.com/training/sync-adapters) 创建了一个同步系统。

我的应用现在在帐户下的 Android 设置中有一个条目。当我点击此条目时,我会看到我已配置的同步适配器。一切看起来都不错,只是未选中该框并显示“同步已关闭”。

我在 Google 上搜索过 Stackoverflow,似乎有一种方法可以启用同步,如下所述:https://stackoverflow.com/a/5279191/127434。该链接的答案是致电ContentResolver.setSyncAutomatically(account, authority, true)

但是,Google 的文档 (http://developer.android.com/training/sync-adapters/running-sync-adapter.html#RunByNetwork) 说:

当网络连接可用时,Android 系统会发送一个 每隔几秒发送一次消息,以保持设备的 TCP/IP 连接打开。 此消息还会发送到每个应用程序的 ContentResolver。通过调用 setSyncAutomatically(),你可以在任何时候运行同步适配器 ContentResolver 收到消息。

但我不想每隔几秒同步一次。 (我想使用ContentResolver.addPeriodicSync 来安排每小时同步几次。)

那么我如何才能为我的适配器启用同步而不让它每隔几秒同步一次呢?

【问题讨论】:

  • 您是说 addPeriodicSync 需要 setSyncAutomatically 吗?
  • 我的意思是我写的第三段
  • 不清楚您是否发现 addPeriodicSync 依赖于您不想要的自动同步,即使它是 google 推荐的。
  • 谷歌推荐在哪里?这就是我的观点 - 我看不到 Google 推荐这个,但同样这似乎是唯一的方法
  • 你有没有找到解决这个问题的方法?我根本无法让 addPeriodicSync 工作。 setSyncAutomatically(,,_,true) 导致同步适配器每分钟运行一次,如果我将 false 传递给它或根本不调用它,则该帐户的同步被禁用。 addPeriodicSync 似乎只是被忽略了。我尝试向 ContentProvider 添加标签、调用 setIsSyncable 等。

标签: android android-syncadapter


【解决方案1】:

你应该添加 ContentResolver.setMasterSyncAutomatically(true);到你的代码。没有这个 setSyncAutomatically 将被忽略。

阅读文档 [这里] (http://developer.android.com/reference/android/content/ContentResolver.html#setMasterSyncAutomatically(boolean))

【讨论】:

    猜你喜欢
    • 2014-11-22
    • 1970-01-01
    • 1970-01-01
    • 2010-12-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多