我的应用程序有多个帐户和SyncAdapter。我希望在用户选择其他帐户后立即停止同步帐户。我在做:
ContentResolver.cancelSync(new Account(mAccount, ACCOUNT_TYPE), MyProvider.AUTHORITY);
ContentResolver.removePeriodicSync(new Account(mAccount, ACCOUNT_TYPE), MyProvider.AUTHORITY, new Bundle());
它仍然同步。如何阻止它同步?
ps我通过setSyncAutomatically启用了Sync,最初是requestSync。
答案 0 :(得分:9)
正确的答案应该是:
使用cancelSync取消同步。
根据this website的解释:
我们可以选择取消同步请求,方法是调用cancelSync()。 如果同步适配器处于“挂起”状态,这意味着它没有 开始了,它会被立即取消并变成“空闲”。如果它是 已经运行,同步适配器上的onSyncCanceled()方法将 叫做。例如,您可以使用它来设置“isSyncStopped”标志 onPerformSync()将定期检查并响应。
答案 1 :(得分:8)
我明白了。
我们要使用:
int syncOnOff = 0;
ContentResolver.setIsSyncable(account, MyProvider.AUTHORITY, syncOnOff);
其中syncOnOff为0表示禁用,> 0表示启用。 | O |为什么不是真的假?