监听ContentProvider中数据的变化
2013-09-02 17:07
465 查看
A应用向C应用中添加一条数据,B应用监听C应用中的数据变化
A应用中代码如下:
1、主页面中添加一个按钮,用于向C应用中添加一条数据。代码如下:
android:onClick="insert"
按钮的onClick事件,当按钮点击时触发insert方法。
2、insert方法代码如下:
C应用中代码如下:
1、当A应用插入数据时,C应用ContentProvider中的insert方法发出数据变化通知,代码如下:
1、B应用在运行时就要注册一个数据变化监听器:registerContentObserver。代码如下:
A应用中代码如下:
1、主页面中添加一个按钮,用于向C应用中添加一条数据。代码如下:
<Button android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="@string/button" android:onClick="insert" />
android:onClick="insert"
按钮的onClick事件,当按钮点击时触发insert方法。
2、insert方法代码如下:
public void insert(View v){ Uri uri=Uri.parse("content://xdd.providers.Person/person"); //通过上下文对象,获得ContentResolver对象 ContentResolver resolver =this.getContentResolver(); //通过ContentValues添加数据 ContentValues values=new ContentValues(); values.put("name", "Aapptest"); values.put("phone", "123456"); values.put("amount", "99999999"); //通过ContentValues的insert方法插入数据 resolver.insert(uri, values); }
C应用中代码如下:
1、当A应用插入数据时,C应用ContentProvider中的insert方法发出数据变化通知,代码如下:
public Uri insert(Uri uri, ContentValues values) { //1、获得数据库操作实例 SQLiteDatabase db =dbOpenHelper.getWritableDatabase(); //3、判断传入的uri switch (Matcher.match(uri)) { case 1: long rowid=db.insert("person", "name", values); Uri insertUri=ContentUris.withAppendedId(uri, rowid); //通过上下文对象调用getContentResolver的notifyChange(uri,监听者)方法 ; //发出数据变化通知 this.getContext().getContentResolver().notifyChange(uri, null); return insertUri; default: throw new IllegalArgumentException("this is unknown uri"+uri); } }B应用中代码如下:
1、B应用在运行时就要注册一个数据变化监听器:registerContentObserver。代码如下:
protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); Uri uri=Uri.parse("content://xdd.providers.Person/person"); //注册数据变化监听器 this.getContentResolver().registerContentObserver(uri, true, new PersonContentObserver(new Handler())); }2、继承ContentObserver,并实现onChange方法。代码如下:
public void onChange(boolean selfChange) { //select * from person order by personid desc limit 1 Uri uri =Uri.parse("content://xdd.providers.Person/person"); //获取数据 Cursor cursor =getContentResolver().query(uri, null, null, null, "personid desc limit 1"); if(cursor.moveToFirst()){ String name=cursor.getString(cursor.getColumnIndex("name")); Log.i("MainActivity", name); } }
相关文章推荐
- Android 监听ContentProvider中数据的变化
- ContentObserver监听ContentProvider的暴露数据的变化
- 监听ContentProvider中数据的变化
- Android开发14——监听内容提供者ContentProvider的数据变化
- Android学习笔记---监听ContentProvider(内容共享者)中数据的变化
- Android开发14——监听内容提供者ContentProvider的数据变化
- 监听内容提供者ContentProvider的数据变化
- 实例教程十:监听ContentProvider中数据的变化
- [Android Pro] 监听内容提供者ContentProvider的数据变化
- ContentObserver监听ContentProvider数据变化
- Android 使用ContentProvider对外共享数据与监听ContentProvider数据的变化
- ContentProvider监听数据变化
- Android开发入门之监听ContentProvider中数据的变化
- 实例教程十:监听ContentProvider中数据的变化
- ContentProvider 监听数据变化
- Android开发14——监听内容提供者ContentProvider的数据变化
- 实例教程十:监听ContentProvider中数据的变化
- 监听ContentProvider的数据变化
- 监听ContentProvider中数据的变化
- 基于Android 监听ContentProvider 中数据变化的相关介绍