停止Android SyncAdapter同步

时间:2011-04-18 16:23:33

标签: android

我的应用程序有多个帐户和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。

2 个答案:

答案 0 :(得分:9)

正确的答案应该是:

使用cancelSync取消同步。

根据this website的解释:

  

我们可以选择取消同步请求,方法是调用cancelSync()。   如果同步适配器处于“挂起”状态,这意味着它没有   开始了,它会被立即取消并变成“空闲”。如果它是   已经运行,同步适配器上的onSyncCanceled()方法将   叫做。例如,您可以使用它来设置“isSyncStopped”标志   onPerformSync()将定期检查并响应。

答案 1 :(得分:8)

我明白了。

我们要使用:

int syncOnOff = 0;

ContentResolver.setIsSyncable(account, MyProvider.AUTHORITY, syncOnOff);

其中syncOnOff为0表示禁用,> 0表示启用。 | O |为什么不是真的假?