
 
	1、ContentProvider是如何实现数据共享的? 
	在安卓中如果想将自己应用的数据(一般为自己数据库中的数据)提供给第三方的应用,那么我们只能通过内容提供者来实现。 
	ContentProvider是应用程序之间共享数据的接口,使用的时候首先自定义一个类继承ContentProvider,然后重写query\insert\update\delete等的方法。因为其实四大组件之一,因此必须在清单文件中配置(manifest). 
	把自己的数据通过URI的形式共享出去 
	安卓系统下不同程序 数据默认是不能共享访问的 
	需要去实现一个类去继承ContentProvider 
	  
public class PersonContentProvider extends ContentProvider{
 public boolean onCreate(){
 }
  query(Uri, String[], String, String[], String)
 insert(Uri, ContentValues)
 update(Uri, ContentValues, String, String[])
 delete(Uri, String, String[])
 }
	
	  
<provider
android:exported="true"
android:name="com.itheima.contenProvider.provider.PersonContentPro
vider"android:authorities="com.itheima.person" />
	
	  
	第三方可以通过 ContentResolver 来访问该 Provider。 
	
 
	2、安卓中数据存储的方式
	文件存储、sp存储、ContentProvider存储、SQLiteDataBase存储、网络存储 
	
	3、为什么要用ContentProvider?它和Sql的实现上有什么差别? 
	contentProvider屏蔽了数据存储的细节,用户只需要关心操作数据的URI就可以了,ContentProvider可以实现不同APP之间的共享。 
	Sql也有增删改查的方法,但是Sql只能查询本应用下的数据库。而ContentProvider还可以去增删改查本地文件。XML文件的读取等等。 
	
	4、说说ContentProvider、ContentResolver、ContentObserver之间的关系 
	a.ContentProvider内容提供者,用于对外提供数据 
	b.ContentResolver.notifyChange(uri)发出信息 
	c.ContentResolver内存解析者,用于获取内容提供者提供的数据 
	d.ContentObserver内容观察者,可以监听数据的改变状态 
	e.ContentResolver.registerContentObserver()监听消息 
	
	对于使用内容提供者,可能因为没有具体的代码实例,会感到陌生,其实没关系的,如果要用的时候,我们随随便便网上看一眼就知道了,不要慌,哈哈 
	本文转自诡道网!由杨小杰blog进行排版整合。
 
	
	
     
发表评论: