android – SyncAdapter停止同步

我们的SyncAdapter实现与Android 4.4.4版不同步.适用于较低的API设备.

我们的应用程序使用AbstractThreadedSyncAdapter与服务器通信.我已经使用许多不同的设备和模型对其进行了测试,从API级别10开始运行android.我们最近购买了两台基于Android 4.4.4的设备(Moto E,Nexus 5),并开始遇到SyncAdapter问题.这是xml配置:

arallelSyncs="false"
    android:isAlwaysSyncable="true"
    android:supportsuploading="true" />

即使我放了手动和加急标志,同步也不会触发:

Bundle bundle = new Bundle();
bundle.putBoolean(ContentResolver.SYNC_EXTRAS_MANUAL,true);
bundle.putBoolean(ContentResolver.SYNC_EXTRAS_EXPEDITED,true);
ContentResolver.requestSync(SyncAdapter.dummyAccount(context),SYNC_PROVIDER,bundle);

我正在尝试通过WiFi和连接电源线来解除任何与电源使用相关的优化问题.目标SDK设置为最新版本:

我有all the necessary permissions

有一件事让我感到不同寻常.设备报告API级别= 19,但SDK说API 19相当于android 4.4.2,而不是android 4.4.4:

这可能与这个问题有关吗?

很抱歉没有更多的帮助或描述,但我真的没有关于如何继续调试此问题的线索.提前致谢.

编辑

进一步思考:

>似乎与同步失败时使用的指数退避算法有关.在开始新请求并使用手动同步(忽略退避)之前,我最终取消了请求.我知道这不太理想,但在我的用例中,用户希望数据能够立即同步.确保给SyncManager一个表情:https://android.googlesource.com/platform/frameworks/base/+/master/services/core/java/com/android/server/content/SyncManager.java
>卸载应用程序并再次运行它可以解决问题,因此可能与帐户的权限有关.请注意,我确实从清单中删除了一些未使用的服务,但没有任何与SyncAdapter或其关联类相关的服务.
> Seems that I’m not alone on this one.

最佳答案
虽然不是答案,但this可能有所帮助.据我所知,它是一个完全最小的SyncAdapter.

该示例没有AccountAuthenticator组件.只有在调用其中一个getAuthToken方法时才需要AccountAuthenticator.

评论中所述,我尝试使用此最小示例复制您的问题,但无法执行此操作.也许你可以从它开始并构建失败的东西.

相关文章

Android性能优化——之控件的优化 前面讲了图像的优化,接下...
前言 上一篇已经讲了如何实现textView中粗字体效果,里面主要...
最近项目重构,涉及到了数据库和文件下载,发现GreenDao这个...
WebView加载页面的两种方式 一、加载网络页面 加载网络页面,...
给APP全局设置字体主要分为两个方面来介绍 一、给原生界面设...
前言 最近UI大牛出了一版新的效果图,按照IOS的效果做的,页...