说说BroadcastReceiver和ContentProvider

上一篇说了Activity,Fragment和Service,今天来说说四大组件中的另外两个吧。

BroadcastReceiver:

  广播在实际开发中非常有用,是各个组件间通讯的利器。广播接收器分为两种,一种是静态注册的,在xml文件中注册,这种是全局性质的广播接收器

  另外一种是在代码中动态注册的,要记得销毁,这种一般是作为组件的内部类,来接受消息,比如说像Activity和Service之间的通讯,在Activity中注册接收器,Service执行完发一个广播通知

ContentProvider:

  作为4大组件之一,ContentProvider感觉是平时最容易被忽略的组件。作为内容提供者,暴露一个Uri出去。

  举三个例子吧:相册选择照片,onActivityResult()中返回的就是一个Uri,可以根据Uri找到图片的真实地址(这个貌似不是ContentProvider,就当说Uri吧)

  第二个,自定义一个ContentProvider,里面是sp或者沙盒内的数据库,文件等私有数据,对外暴露一个Uri,给另外一个进程调用,增删改查,查出来的是游标

  第三个,系统的ContentProvider,如下图,查系统联系人用的就是系统暴露出来的Uri,查出来的都是游标

// 获取用来操作数据的类的对象,对联系人的基本操作都是使用这个对象  
ContentResolver cr = getContentResolver();  
// 查询contacts表的所有记录  
Cursor cur = cr.query(ContactsContract.Contacts.CONTENT_URI, null, null,   null, null);  

 

posted @ 2015-09-17 22:51  大土豆8  阅读(333)  评论(0编辑  收藏  举报