Android SDK Document 框架导读的翻译和注解[5]——Content provider

晨曦之光 发布于 2012/03/09 12:11
阅读 59
收藏 0

Content provider:
Content provider将当前应用程序的某些特定数据,提供给其他应用程序。这些数据可以存储在文件系统,SQLite数据库,或者是任意其他有意义的存储方式。content provider 继承自ContentProvider基类,实现了一些标准的方法集合,这些方法可以让其他的应用程序访问和存储content provider控制数据类型。但是, 应用程序并不是直接调用这些方法,而是用一个ContentResolver对象调用这些方法。ContentResolver可以和任意 contentProvider对话,ContentResolver 通过和provider的协作,实现跨进程的通信。

  查看文档中关于Content Provider的部分,获得更多关于content provider的使用。



  通观Android这四类组件和进程的关系:只要存在一个请求需要被特定的组件处理,Android必须保证组件所在的应用程序进程是运行的, 如有需要(比如,应用程序进程不存在的情况下),启动这个应用程序进程, 同时需保证存在可用的组件实例, 如有需要(比如,组件被销毁),创建这个组件实例。

 

 


例一: 使用系统提供的数据, 典型应用是联系人和电话的查询,下面是一个典型的所有电话号码的查询:

// Get a cursor with all phones 
Cursor c = getContentResolver().query(Phones.CONTENT_URI, null, null, null, null); startManagingCursor(c); 
// Map Cursor columns to views defined in simple_list_item_2.xml 
ListAdapter adapter = new SimpleCursorAdapter(this, android.R.layout.simple_list_item_2, c, new String[] { Phones.NAME, Phones.NUMBER }, new int[] { android.R.id.text1, android.R.id.text2 }); 
setListAdapter(adapter);

 

为自己的应用程序实现数据访问的ContentProvider:

以Content Provider的方式访问数据, 需要准备以下几个步骤:

1. 继承ContentProvider类

2. 定义public static final 的Uri类型变量, 并命名为CONTENT_URI 并设置好它的标准头部, 授权, 数据类型等.

3. 构件数据存储, 数据存储一般有:Preferences, files, DataBases, NetWorks

4. 实现1中的抽象方法, 特别是insert, query, delete, update方法, 这些方法都是对3中具体数据存储操作的封装.

 

当然, 还需要在AndroidManifest中定义.


原文链接:http://blog.csdn.net/ostrichmyself/article/details/5662355
加载中
返回顶部
顶部