博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
ContentProvider和数据库的区别
阅读量:2073 次
发布时间:2019-04-29

本文共 943 字,大约阅读时间需要 3 分钟。

大家好,今天我们来讲解ContentProvider和数据库的区别是他们之间的联系.

四大组件之一

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

    1.在Android中,为了把自己程序的数据(一般是数据库)提供给其他应用程序,就通过ContentProvider提供的方法.

    2.内容提供者可认为是程序间共享数据的接口,新建一个类继承ContentProvider.
    3.按要求重写insert,delete,update,query方法(用于数据库的操作).

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

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

        <provider

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

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

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,在观察者创建时就注册

 

-

转载地址:http://vtvmf.baihongyu.com/

你可能感兴趣的文章
【LEETCODE】106-Construct Binary Tree from Inorder and Postorder Traversal
查看>>
【LEETCODE】202-Happy Number
查看>>
和机器学习和计算机视觉相关的数学
查看>>
十个值得一试的开源深度学习框架
查看>>
【LEETCODE】240-Search a 2D Matrix II
查看>>
【LEETCODE】53-Maximum Subarray
查看>>
【LEETCODE】215-Kth Largest Element in an Array
查看>>
【LEETCODE】312-Burst Balloons
查看>>
【LEETCODE】232-Implement Queue using Stacks
查看>>
【LEETCODE】225-Implement Stack using Queues
查看>>
【LEETCODE】155-Min Stack
查看>>
【LEETCODE】20-Valid Parentheses
查看>>
【LEETCODE】290-Word Pattern
查看>>
【LEETCODE】36-Valid Sudoku
查看>>
【LEETCODE】205-Isomorphic Strings
查看>>
【LEETCODE】204-Count Primes
查看>>
【LEETCODE】228-Summary Ranges
查看>>
【LEETCODE】27-Remove Element
查看>>
【LEETCODE】66-Plus One
查看>>
【LEETCODE】26-Remove Duplicates from Sorted Array
查看>>