Android ContenObserver 监听联系人数据变化

移动开发 作者: 2024-08-24 15:20:01
一、知识介绍 1、ContentProvider是内容提供者 ContentResolver是内容解决者(对内容提供的数据进行操作) ContentObserver是内容观察者(观察内容提供者提供的数

一、知识介绍

二、项目实践

 1 import android.Manifest;
 2  android.content.ContentResolver;
 3  android.content.pm.PackageManager;
 4  android.database.ContentObserver;
 5  android.net.Uri;
 6  android.os.Handler;
 7  android.provider.ContactsContract;
 8  android.support.v4.app.ActivityCompat;
 9  android.support.v7.app.AppCompatActivity;
10  android.os.Bundle;
11  android.util.Log;
12  android.widget.Toast;
13 
14 public class MainActivity extends AppCompatActivity {
15 
16     ContentResolver resolver = null;
17     Observer observer = 18     @Override
19     protected void onCreate(Bundle savedInstanceState) {
20         super.onCreate(savedInstanceState);
21         setContentView(R.layout.activity_main);
22         
23         //动态权限申请(同时也要在AndroidManifest文件问进行申请权限)
24         if (ActivityCompat.checkSelfPermission(this,25                 Manifest.permission.READ_CONTACTS)!=
26                 PackageManager.PERMISSION_GRANTED);
27                 ActivityCompat.requestPermissions(
28                         MainActivity.29                         new String[]{ Manifest.permission.READ_CONTACTS
30         },0);
31                 
32         实例化Observer        
33         observer = new Observer( Handler());
34         获取resolver
35         resolver = getContentResolver();
36         Uri uri = ContactsContract.Contacts.CONTENT_URI;
37         注册Observer
38         resolver.registerContentObserver(uri,true39 
40     }
41 
42     class Observer  ContentObserver{
43 
44         public Observer(Handler handler) {
45             (handler);
46         }
47 
48         @Override
49         void onChange(boolean selfChange) {
50             .onChange(selfChange);
51             Toast.makeText(MainActivity.52                     "联系人列表发生变化"53             onchange 方法中添加Toast便于观察
54 55 56 
57 58      onDetachedFromWindow() {
59         .onDetachedFromWindow();
60         在Activity中注销observer
61         resolver.unregisterContentObserver(observer);
62 63 }
原创声明
本站部分文章基于互联网的整理,我们会把真正“有用/优质”的文章整理提供给各位开发者。本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
本文链接:http://www.jiecseo.com/news/show_67886.html