sor.item/name");
nameva lues.put("contact_id", contact_id);
getContentResolver().insert(uriInsert, nameva lues);
2.监听ContentProvider中数据的变化
在ContentProvider 发生数据变化时调用getContentResolver().notifyChange(uri, null)来通知注册在此URI上的访问者。
当数据放生变化时会调用ContentObserver的onChange()来进行一系列的后续操作~~~
如下:
public class MainActivity extends Activity {
private Uri uri;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
//注册
uri = Uri.parse("content://com.example.contentp.AccountProvider");
getContentResolver().registerContentObserver(uri, true, new MyObserver(new Handler()))
}
}
//监听到变化后调用onChange()来执行一系列操作
private class MyObserver extends ContentObserver {
Uri uri = Uri.parse("content://com.example.contentp.AccountProvider");
public MyObserver(Handler handler) {
super(handler);
}
@Override
public void onChange(boolean selfChange) {
Cursor cursor = getContentResolver().query(uri, new String[]{"file","mime_type","date"}, null, null, null);
while(cursor.moveToNext()){
//执行一些操作
}
}
}
ContentProviderClient
与ContentResolver一样都是用来对ContentProvider中的数据进行添加、删除、修改和查询操作的
通过调用 getContentResolver().acquireContentProviderClient(authority) 方法获取 ContentProviderClient对象。
用法跟ContentResolver相似,不同点是ContentProviderClient 对象必须在结束使用后,调用ContentProviderClient.release()来释放。这会是系统释放对应的ContentProvider对象。
对于相同ContentProvider 的多次调用,推荐使用ContentProviderClient。