请高手帮忙,android 同步问题, 在我的contact sync的时候
当我再android模拟器上同步联系人的时候, 如果有一个联系人被更新, 我想知道这个时机, 然后把联系人反映到我的应用程序上, 我现在只能请求sync, 却不知道他什么时候完成, 什么时候同步下来一个联系人。
我的code:
private void requestSync()
{
AccountManager am = AccountManager.get(this);
Account[] accounts = am.getAccounts();
for (Account account : accounts)
{
int isSyncable = ContentResolver.getIsSyncable(account, ContactsContract.AUTHORITY);
if (isSyncable > 0)
{
Bundle extras = new Bundle();
extras.putBoolean(ContentResolver.SYNC_EXTRAS_MANUAL, true);
ContentResolver.requestSync(accounts[0], ContactsContract.AUTHORITY, extras);
}
}
}
[解决办法]
你可以使用ContentResolver.addStatusChangeListener监听系统同步的状态,在onStatusChanged方法里判断ContentResolver.isSyncPending和ContentResolver.isSyncActive,两个都为false表示一次同步结束了,然后可以为联系人URI注册侦听器,registerContentObserver,当联系人表有变化,就会回调onChange