Android开发入门之监听ContentProvider中数据的变化
2013-07-09 02:48
477 查看
新建Aapp工程,向主页面添加一个按钮
该按钮向person插入一条数据
在db工程的insert方法中,
新建Bapp工程监听Aapp向Person表中添加数据时发生的变化
public void insert(View v) { Uri uri = Uri .parse("content://cn.leigo.providers.personprovider/person"); ContentResolver resolver = this.getContentResolver(); ContentValues values = new ContentValues(); values.put("name", "A-App"); values.put("phone", "18800000000"); values.put("amount", 12000); resolver.insert(uri, values); }
该按钮向person插入一条数据
在db工程的insert方法中,
@Override public Uri insert(Uri uri, ContentValues values) { SQLiteDatabase db = dbOpenHelper.getWritableDatabase(); switch (MATCHER.match(uri)) { case PERSONS: long rowid = db.insert("person", "name", values); // 主键值 // content://cn.leigo.providers.personprovider/person/10 // Uri insertUri = // Uri.parse("content://cn.leigo.providers.personprovider/person/"+ // rowid); Uri insertUri = ContentUris.withAppendedId(uri, rowid); //发出数据变化通知 this.getContext().getContentResolver().notifyChange(uri, null); return insertUri; default: throw new IllegalArgumentException("this is Unknow Uri:" + uri); } }
新建Bapp工程监听Aapp向Person表中添加数据时发生的变化
package cn.leigo.bapp; import android.app.Activity; import android.database.ContentObserver; import android.database.Cursor; import android.net.Uri; import android.os.Bundle; import android.os.Handler; import android.util.Log; public class MainActivity extends Activity { private static final String TAG = "MainActivity"; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); Uri uri = Uri .parse("content://cn.leigo.providers.personprovider/person"); this.getContentResolver().registerContentObserver(uri, true, new Observer(new Handler())); } private class Observer extends ContentObserver { public Observer(Handler handler) { super(handler); } @Override public void onChange(boolean selfChange) { Uri uri = Uri .parse("content://cn.leigo.providers.personprovider/person"); Cursor cursor = getApplicationContext().getContentResolver().query(uri, null, null, null, "personid desc limit 1"); if (cursor.moveToFirst()) { String name = cursor.getString(cursor.getColumnIndex("name")); Log.i(TAG, name); } } } }
相关文章推荐
- Android开发14――监听内容提供者ContentProvider的数据变化
- Android开发14——监听内容提供者ContentProvider的数据变化
- Android开发14——监听内容提供者ContentProvider的数据变化
- Android开发14——监听内容提供者ContentProvider的数据变化
- Android 监听ContentProvider中数据的变化
- Android 监听ContentProvider中数据的变化
- 基于Android 监听ContentProvider 中数据变化的相关介绍
- Android 监听ContentProvider中数据的变化
- Android入门:监听ContentProvider数据改变
- Android入门:监听ContentProvider数据改变
- [Android Pro] 监听内容提供者ContentProvider的数据变化
- Android入门:监听ContentProvider数据改变
- 使用android中ContentProvider组件对外共享以及监听ContentProvider中数据的变化
- Android之使用Contentprovider对外共享数据和实现数据监听变化
- Android开发入门之采用ContentProvider对外共享数据
- Android开发入门之实现动态注册广播监听网络变化
- Android 使用ContentProvider对外共享数据与监听ContentProvider数据的变化
- 【Android】【笔记】《Android 入门经典》part 11 ContentProvider 数据共享
- Android开发从入门到放弃(1)在Activity之间传递数据
- android数据库数据变化监听