我的应用程序有多个帐户和SyncAdapter.我希望在用户选择其他帐户后立即停止同步帐户.我正在做:
ContentResolver.cancelSync(new Account(mAccount, ACCOUNT_TYPE), MyProvider.AUTHORITY);
ContentResolver.removePeriodicSync(new Account(mAccount, ACCOUNT_TYPE), MyProvider.AUTHORITY, new Bundle());
Run Code Online (Sandbox Code Playgroud)
它仍然同步.如何阻止它同步?
ps我最初通过setSyncAutomatically,requestSync启用了Sync.
and*_*per 10
正确答案应该是:
使用cancelSync取消同步.
根据本网站的解释:
我们可以通过调用cancelSync()来取消同步请求.如果同步适配器处于"待定"状态,这意味着它尚未启动,它将立即被取消并变为"空闲"状态.如果它已在运行,则将调用同步适配器上的onSyncCanceled()方法.例如,您可以使用它来设置onPerformSync()将定期检查并响应的"isSyncStopped"标志.
我想到了.
我们要用:
int syncOnOff = 0;
ContentResolver.setIsSyncable(account, MyProvider.AUTHORITY, syncOnOff);
Run Code Online (Sandbox Code Playgroud)
其中syncOnOff为0表示禁用,> 0表示启用.| O | 为什么不是真假?
| 归档时间: |
|
| 查看次数: |
6831 次 |
| 最近记录: |