Android-ContentObserver,内容观察者。目的是观察(捕捉)特定Uri引起的数据库的变化,继而做一些相应的处理,
当ContentObserver所观察的Uri发生变化时,便会触发它。
import android.database.ContentObserver;
import android.net.Uri;
import android.os.Handler;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
public class MainActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
//注册内容观察者
Uri uri = Uri.parse("content://com.yingu.provider/insert");
getContentResolver().registerContentObserver(uri,true,new MyContentObserver(new Handler()));
}
private class MyContentObserver extends ContentObserver{
/**
* Creates a content observer.
*
* @param handler The handler to run {@link #onChange} on, or null if none.
*/
public MyContentObserver(Handler handler) {
super(handler);
}
// 当我们观察的uri发生改变的时候调用
@Override
public void onChange(boolean selfChange) {
System.out.println("数据库被操作了");
super.onChange(selfChange);
}
}
}
// 该部分属于内容观察者的代码
if( insert >0){
getContext().getContentResolver().notifyChange(uri,null);
}