我最近才接触到ContentObserver,今天写了个sample试了下,发现无法检测到db的改动,代码如下:
Activity onCreate()里注册:
// register observer
mObserver = new ComplexTableObserver(uiHandler);
getContentResolver().registerContentObserver(
ComplexColumns.OBSERVE_URI, true, mObserver);
Observer类:
class ComplexTableObserver extends ContentObserver
{
private Handler mHandler;
public ComplexTableObserver(Handler handler)
{
super(handler);
mHandler = handler;
}
@Override
public void onChange(boolean selfChange)
{
Utils.LOG(">onChange<");
// trigger off loader when data updated
// LoaderManager mManager = getLoaderManager();
// mManager.initLoader(0, null, ComplexListActivity.this);
// Message msg = new Message();
// msg.what = 2;
// msg.obj = "Data changed.";
// mHandler.sendMessage(msg);
}
}
还有不论采用
public static final Uri OBSERVE_URI = Uri.parse("content://" + AUTHORITY);
或是
public final static Uri CONTENT_URI = Uri.parse("content://" + AUTHORITY + "/main");
都不能检测到,我修改db以后没有任何反应,db中只有一张表main,请问还有什么要注意的地方吗,比如权限啥的?
thx in advance