1. 程式人生 > >內容觀察者使用(程序鎖應用中的使用)

內容觀察者使用(程序鎖應用中的使用)

ride context change 添加 class void resolve notify xtend

1.在Dao層的增刪改查方法中,添加一句代碼,通知內容觀察者,數據庫發生改變。

context.getContentResolver().notifyChange(Uri.parse("content://applock/change"), null);

參數1:自定義Uri,在註冊內容觀察者時匹配

2.在需要使用內容觀察者的類中(即DogService),註冊內容觀察者。一旦數據庫的數據發生改變,就要調用內容觀察者中的onchange方法,在這裏就是再一次findAll().

//使用內容觀察者,觀察數據庫數據的改變

MyContentObserver myContentObserver = new MyContentObserver(new Handler());

getContentResolver().registerContentObserver(Uri.parse("content://applock/change"),true, myContentObserver);

class MyContentObserver extends ContentObserver{

public MyContentObserver(Handler handler) {

super(handler);}

//當數據庫數據發生改變時調用該方法

@Override

public void onChange(boolean selfChange) {

//當數據庫數據發生改變時再查一次數據庫

new Thread(){

public void run() {

//耗時操作,在子線程中進行

lockAppList = appLockDao.findAll();

};

}.start();}}

內容觀察者使用(程序鎖應用中的使用)