我正在我的一个安卓项目中使用GreenDao。我尝试实现一个观察者/监听器,用于在更改完成时进行通知。
到目前为止,我创建了一些静态基本函数(保存、替换和删除),只是通过EventBus发布事件,但这种方法给我带来了很多麻烦。
目前,我正在尝试使用ContentObserver,但出于某些原因它不起作用(请参见附加的代码),但我很乐意听取其他通用解决方案的建议。
观察者:
public class DBObserver extends ContentObserver {
public DBObserver() {
super(null);
Logger.e("DBObserver was initialized!");
}
@Override
public void onChange(boolean selfChange) {
super.onChange(selfChange);
Log.d("SOMETHING CHANGED IN DB OBSERVER");
}
@Override
public void onChange(boolean selfChange, Uri uri) {
super.onChange(selfChange, uri);
Log.d("SOMETHING CHANGED IN DB OBSERVER");
}
}
观察者注册(在Application onCreate中实现):
DaoMaster.DevOpenHelper helper = new DaoMaster.DevOpenHelper(this, DB_NAME, null);
SQLiteDatabase db = helper.getWritableDatabase();
DaoMaster daoMaster = new DaoMaster(db);
DaoSession daoSession = daoMaster.newSession();
getContentResolver().registerContentObserver(TicketModelContentProvider.CONTENT_URI, true, new DBObserver());
谢谢。