美文网首页
谈谈内容提供者——ContentProvider

谈谈内容提供者——ContentProvider

作者: Eternal_life | 来源:发表于2019-04-22 21:18 被阅读0次

    概述
    ContentProvider内容提供者是andorid四大组件之一ContentProvider为不同的软件之间数据共享,提供统一的接口。
    作用:contentprovider在andorid中的作用就是对外共享数据,使用ContentProvider对外共享的好处就是统一了数据的访问方式也就是说,可以通过ContentProvider把应用中的数据共享给其他应用访问,其他应用可以ContentProvider对应用中的数据进行增删改查操作。

    话不多说上图

    事件纷发.png
    简单概述一下事件纷发的过程
    从activity开始进入事件纷发:Activity无论返回true或者false,都是自己消费;因为它自己就是顶层,被系统消费,当返回super向下纷发。交给子ViewGroup,如果viewGroup的dispatchTouchEvent返回true就自己消费,返回false就交给上一层消费,返回super就交给自身拦截事件,拦截事件返回true的话自己消费,其他的返回结果就是继续纷发(在这提醒一下大家只有容器才有OnInterceptTouchEvent,也就是说只有ViewGroup才有这个方法)子View的纷发事件为true自己消费,返回false交给上一层

    进入细节代码

    创建属于自己的ContentProvider,实现对外共享的步骤
    (1)继承ContentProvider,重新方法,代码如下:

    public class PersonContentProvider extends ContentProvider{
        public boolean onCreate()
       
        public Uri insert(Uri uri, ContentValues values)
     
        public int delete(Uri uri, String selection, String[] selectionArgs)
     
    public int update(Uri uri, ContentValues values, String selection, String[] selectionArgs)
    public Cursor query(Uri uri, String[] projection, String selection, String[] selectionArgs, String sortOrder)
        public String getType(Uri uri)
    }
    

    (2)在AndroidMainfest.xml文件中配置文件,在代码中操作

    然后给大家介绍一下URI
    (1)概述
    Uri代表要操作的数据
    Uri主要是包含了两部分:
    a.需要操作的ContentProvider
    b.对ContentProvider要进行操作
    (2)Url组成
    1).ContentProvider的scheme已经被Android规定
    scheme:就是content
    2).主机名或者叫(Authority)用于唯一识别这个ContentProvider,外部调用者看可以根据这个标识来找到它
    3).路径(path)可以用来标识我们要操作的数据
    4).操作不同的数据,来自数据库、文件、xml或者网络
    操作方式:Uri uri=Uri.parse("");

    当然不能忘了在清单文件里注册

    <provider 
          android:name="com.example.contentproviderpractice.PeopleContentProvider"
          android:authorities="com.example.student"
          android:exported="true" >
    </provider>
    

    相关文章

      网友评论

          本文标题:谈谈内容提供者——ContentProvider

          本文链接:https://www.haomeiwen.com/subject/yatpgqtx.html