【问题标题】:SyncAdapter does not run. It's always pendingSyncAdapter 不运行。它始终处于待处理状态
【发布时间】:2015-07-14 03:38:11
【问题描述】:

大家好,我很难让我的 syncAdapter 与我已经工作的内容提供商一起工作。

ContentResolver.isSyncPending(mConnectedAccount,MyContentProvider.AUTHORITY)

总是返回 true。
注意事项

  • 所有权限密钥和帐户类型均正确;
  • 我打电话给setIsSyncablesetSyncAutomatically contenResolver
  • RequestSync 什么都不做。 onPerformSync 上的代码永远不会执行
  • 互联网已打开。
  • 我正在使用虚拟身份验证器来完成这项工作。阅读我能找到的关于同步适配器的所有内容,但仍然无法完成这项工作。

关于检查什么的任何提示?

【问题讨论】:

    标签: android android-syncadapter


    【解决方案1】:

    您必须输入以下参数才能使requestSync() 工作。

    Bundle settingsBundle = new Bundle();
    settingsBundle.putBoolean(ContentResolver.SYNC_EXTRAS_MANUAL, true);
    settingsBundle.putBoolean(ContentResolver.SYNC_EXTRAS_EXPEDITED, true);
    ContentResolver.requestSync(mAccount, AUTHORITY, settingsBundle);
    

    【讨论】:

    • onPerformSync 在后台线程中运行对吧?!这可以解释为什么 logcat 中不显示日志消息?
    • 忘了提及,尝试了您发布的代码,仍在等待中,但无论如何感谢。我认为更好的做法是放弃这一点,并以与许多人不同的方式实现相同的逻辑......
    • 是的,onPerformSync 在后台线程中运行。另外,请张贴来自 onPerformSync、Manifest、xml 的代码。
    • HI GZ95 我放弃了同步适配器,它太魔鬼了。Android 1 me 0。我知道它有几个优点,但它真的很乱。我采用了不同的策略。我已经在一个intentService 中实现了同步策略,它运行在不同的事件上,周期性的,广播等等。 IT 花费了我 20% 的时间,我浪费在了 syncAdapter 上。它还没有完成,但它现在正在工作,所以我会坚持下去。
    猜你喜欢
    • 2014-09-20
    • 1970-01-01
    • 2020-12-04
    • 2012-09-18
    • 2013-08-04
    • 2017-12-25
    • 1970-01-01
    • 2014-06-21
    • 2018-03-31
    相关资源
    最近更新 更多