我通过Google示例编写了自定义SyncAdapter
和SyncStatusObserver
,它在旧设备上运行良好。但是在Android 6上它始终处于待定状态。
我在调试模式下检查了我的适配器完成了一项工作,并且一个处于活动状态的观察者是false
但是待处理状态true
都是相同的。
它是同步状态观察器中的代码:
Account account = getAccount();
if (account == null) {
return;
}
boolean syncActive = ContentResolver.isSyncActive(account, SyncService.CONTENT_AUTHORITY);
boolean syncPending = ContentResolver.isSyncPending(account, SyncService.CONTENT_AUTHORITY);
final boolean isLoading = syncActive || syncPending;
我在
中调用此代码private SyncStatusObserver mStatusObserver = new SyncStatusObserver() {
@Override
public void onStatusChanged(final int which) {
getActivity().runOnUiThread(new Runnable() {
@Override
public void run() {
onSyncStatusChanged(which);
}
});
}
};
要请求同步,我打电话:
public static void refresh(Account account, Bundle extras) {
extras.putBoolean(ContentResolver.SYNC_EXTRAS_MANUAL, true);
extras.putBoolean(ContentResolver.SYNC_EXTRAS_EXPEDITED, true);
ContentResolver.requestSync(account, SyncService.CONTENT_AUTHORITY, extras);
}
有人有任何想法,为什么它不能在Android 6上运行?我会很高兴任何合乎逻辑的建议,因为我真的无法理解。
P.S。 Account
我查了并不是。