• 说说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);  
  • 相关阅读:
    awk
    tac
    cat
    less
    more
    head
    vim
    linux安装redis
    Redis for Python开发手册
    Python3.x标准模块库目录
  • 原文地址:https://www.cnblogs.com/mark888/p/4817912.html
Copyright © 2020-2023  润新知