标签:
内容观察者:
当关注应用的数据库数据改变时,内容提供者会发出通知,在内容提供者的uri上注册一个内容观察者,就可以收到数据改变的通知
实现步骤:
1.假如是自定义的ContentProvider,需要在数据发送改变的方法中实现以下代码:
1 ContentResolver cr = getContext().getContentResolver(); 2 //发出通知,所有注册在这个uri上的内容观察者都可以收到通知 3 cr.notifyChange(uri, null);
1 import android.app.Activity; 2 import android.content.ContentResolver; 3 import android.database.ContentObserver; 4 import android.net.Uri; 5 import android.os.Bundle; 6 import android.os.Handler; 7 8 public class MainActivity extends Activity { 9 10 @Override 11 protected void onCreate(Bundle savedInstanceState) { 12 super.onCreate(savedInstanceState); 13 setContentView(R.layout.activity_main); 14 initLinstener(); 15 } 16 17 private void initLinstener() { 18 ContentResolver cr=getContentResolver(); 19 cr.registerContentObserver(Uri.parse("content://sms"), true, new MyObserver(new Handler())); 20 } 21 22 class MyObserver extends ContentObserver{ 23 24 public MyObserver(Handler handler) { 25 super(handler); 26 } 27 //内容观察者收到数据库发生改变的通知时,会调用此方法 28 @Override 29 public void onChange(boolean selfChange) { 30 super.onChange(selfChange); 31 System.out.println("短信数据库发送的改变!"); 32 } 33 } 34 35 }
registerContentObserver(Uri uri, boolean notifyForDescendents, ContentObserver observer)
标签:
原文地址:http://www.cnblogs.com/liyiran/p/5104840.html