我正在使用以下方法启动手动同步

public void startSync(){
        Bundle syncBundle = new Bundle();
        syncBundle.putBoolean(ContentResolver.SYNC_EXTRAS_EXPEDITED, true);
        syncBundle.putBoolean(ContentResolver.SYNC_EXTRAS_MANUAL, true);
        syncBundle.putInt(Utils.SYNC_TYPE, USER_DATA);

        ContentResolver.requestSync(acts[0], CONTENT_AUTHORITY, syncBundle);

  }

假设同步由于某些原因失败:
1。网络故障——网络恢复时如何重新启动同步
2。来自服务器的错误响应--重试的最佳方法
三。设备关闭--设备启动时重新启动同步的最佳方法
android的sync框架中有没有处理这个问题的机制。**

最佳答案

对于1和2,您可以报告一个“软错误”,然后它应该自动重试(指数后退):

syncResult.stats.numIoExceptions++;

对于4,您可以为android.intent.action.BOOT_COMPLETED创建广播接收器,然后从那里触发手动同步。

10-08 17:23