首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 数据库 > 其他数据库 >

Android registerContentObserver 接口监视数据库变更

2012-06-27 
Android registerContentObserver 接口监视数据库变化以launcher app为例说明,此功能的核心是ContentResol

Android registerContentObserver 接口监视数据库变化

以launcher app为例说明,此功能的核心是ContentResolver 的notifyChange?和?registerContentObserver接口?。

?

Launcher.java 的一个方法(在onCreate方法里调用),这里即是为要监视的对象注册Observer。我这里讨论如何监视数据库里数据的变化,所以要监视的对象自 然是数据库了, LauncherSettings.Favorites.CONTENT_URI 指向的就是一张数据库表(详见launcher app源码)。

private void sendNotify (Uri uri) {String notify = uri.getQueryParameter(PARAMETER_NOTIFY);if (notify == null || "true".equals(notify)) {getContext().getContentResolver(). notifyChange (uri, null);} }@Overridepublic Uri insert(Uri uri, ContentValues initialValues) {SqlArguments args = new SqlArguments(uri);SQLiteDatabase db = mOpenHelper.getWritableDatabase();final long rowId = db.insert(args.table, null, initialValues);if (rowId <= 0) return null;uri = ContentUris.withAppendedId(uri, rowId);sendNotify (uri);return uri;}
?

热点排行