Как отменить процесс синхронизации SyncAdapter?ContentResolver.cancelSync () не отменяет его.
Мне это нужно, потому что я синхронизирую тысячу контактов (в onPerformSync ()) из приложения в книгу контактов Android (вызывая ContentResolver.requestSync ()).И мне нужно отменить текущую синхронизацию, когда я хочу выполнить новую.
Чтобы еще раз проверить, что ContentResolver.cancelSync () не отменяет синхронизацию, я не загрузил BasicSyncAdapter .Заменили onPerformSync () на
@Override
public void onPerformSync(Account account, Bundle extras, String authority,
ContentProviderClient provider, SyncResult syncResult) {
for (int i = 0; i < 20; i ++) {
if (i == 10) {
ContentResolver.cancelSync(GenericAccountService.GetAccount(ACCOUNT_TYPE), FeedContract.CONTENT_AUTHORITY);
}
Log.i(TAG, "count " + i);
try {
Thread.sleep(1000);
} catch (InterruptedException e) {
e.printStackTrace();
}
}
}
Так что после 10 он должен остановиться, но он регистрирует все 20.
Спасибо!