ContentProvider和数据库的区别

你们好,今天咱们来说解ContentProvider和数据库的区别是他们之间的联系.android

四大组件之一sql

1.ContentProvider是如何实现数据共享的?数据库

    1.在Android中,为了把本身程序的数据(通常是数据库)提供给其余应用程序,就经过ContentProvider提供的方法.
    2.内容提供者可认为是程序间共享数据的接口,新建一个类继承ContentProvider.
    3.按要求重写insert,delete,update,query方法(用于数据库的操做).app

    4.要记得进行清单文件注册:ide

        注册要加上做者标记authorities(自定义的):this

        <provider
            android:authorities="this.bank.authority"
            android:name=".MyContentProvider"/>
            1
            2
            3server

    5.其余程序经过内容解析者ContentResoler的对象进行增删改查xml

2.为何要使用ContentProvider?它和sql在实现上有什么区别?对象

    1.ContentProvider 屏蔽了数据存储的细节,内部实现透明化,用户只需关心uri便可(是否匹配)
    2.ContentProvider能实现不一样app的数据共享,sql 只能是本身程序才能访问
    3.Contentprovider还能增删本地的文件,xml等信息继承

3.说说ContentProvider,ContentResolver,ContentObserver之间的关系?

    ContentProvider:内容提供者,定义增删改查(方法)和数据库关联;
    ContentResolver:内容解析者,一个app里边用于获取另外一个app的数据(进行增删查改的具体数据操做)

    ContentObserver:内容观察者,另外的一个app(能够是不一样于上述两个app)能够监听数据改变的消息
        1.getContentResolver.notifyChange(uri):在内容提供者里面的各个方法添加,这样就能发出消息
        2.getContentResolver.registerContentOberver():进行监听注册,一个想观察内容变化的app,在观察者建立时就注册

  -

相关文章
相关标签/搜索