use*_*366 5 android contacts addressbook
我能够得到一个通用通知"联系人数据库发生了变化",但我想知道插入,更新或删除的特定记录.
我不想使用查找URI概念,因为我不想单独为每个联系人设置查找URI.我想要一个通用的解决方案,我可以知道何时更新或删除任何联系人.
Cha*_*Yao 10
您可以实现一个Service来监视数据库状态.
import android.app.Service;
import android.content.Intent;
import android.database.ContentObserver;
import android.database.Cursor;
import android.os.Handler;
import android.os.IBinder;
import android.provider.ContactsContract;
public class ContactService extends Service {
private int mContactCount;
@Override
public IBinder onBind(Intent arg0) {
    return null;
}
@Override
public void onCreate() {
    super.onCreate();
    mContactCount = getContactCount();
    this.getContentResolver().registerContentObserver(
            ContactsContract.Contacts.CONTENT_URI, true, mObserver);
}
private int getContactCount() {
    Cursor cursor = null;
    try {
        cursor = getContentResolver().query(
                ContactsContract.Contacts.CONTENT_URI, null, null, null,
                null);
        if (cursor != null) {
            return cursor.getCount();
        } else {
            return 0;
        }
    } catch (Exception ignore) {
    } finally {
        if (cursor != null) {
            cursor.close();
        }
    }
    return 0;
}
private ContentObserver mObserver = new ContentObserver(new Handler()) {
    @Override
    public void onChange(boolean selfChange) {
        super.onChange(selfChange);
        final int currentCount = getContactCount();
        if (currentCount < mContactCount) {
            // DELETE HAPPEN.
        } else if (currentCount == mContactCount) {
            // UPDATE HAPPEN.
        } else {
            // INSERT HAPPEN.
        }
                    mContactCount = currentCount;
    }
};
    @Override
public int onStartCommand(Intent intent, int flags, int startId) {
    return START_STICKY;
}
@Override
public void onDestroy() {
    super.onDestroy();
    getContentResolver().unregisterContentObserver(mObserver);
 }
}
Run Code Online (Sandbox Code Playgroud)
        |   归档时间:  |  
           
  |  
        
|   查看次数:  |  
           3711 次  |  
        
|   最近记录:  |