(4)初识 ContentProvider
组成Android程序的主要4部分,它们分别是Activity,Broadcast Intent Receiver,Service,Content Provider.
Android这个系统和其它的操作系统还不太一样,数据在Android当中是私有的,当然这些数据包括文件数据和数据库数据以及一些其他类型的数据.难道两个程序之间就没有办法对于数据进行交换?解决这个问题主要靠ContentProvider.
一个Content Provider类实现了一组标准的方法接口,从而能够让其他的应用保存或读取此Content Provider的各种数据类型.也就是说,一个程序可以通过实现一个content Provider的抽象接口将自己的数据暴露出去.外界根本看不到,也不用看到这个应用暴露的数据在应用当中是如何存储的,或者是用数据库存储还是用文件存储,还是通过网上获得,这些一切都不重要,重要的是外界可以通过这一套标准及统一的接口和程序里的数据打交道,可以读取程序的数据,也可以删除程序的数据,当然,中间也会涉及到一些权限的问题.下边列举一些较常见的接口,这些接口如下所示:
query(Uri uri, String[] projection, String selection, String[] selectionArgs,String sortOrder):
//通过Uri 进行查询,返回一个Cursor
insert(Uri url, ContentValues values):
//将一组数据插入到Uri 指定的地方
update(Uri uri, ContentValues values, String where, String[] selectionArgs)
//更新Uri 指定位置的数据.
delete(Uri url, String where, String[] selectionArgs)
//删除指定Uri 并且符合一定条件的数据
什么是ContentResolver
外界的程序通过ContentResolver 接口可以访问ContentProvider 提供的数据,在Activity 当中通过getContentResolver()可以得到当前应用的ContentResolver 实例.ContentResolver 提供的接口和ContentProvider 中需要实现的接口对应, 主要有一下几个.
query(Uri uri, String[] projection, String selection, String[] selectionArgs,String sortOrder):
//通过Uri 进行查询,返回一个Cursor
insert(Uri url, ContentValues values):
//将一组数据插入到Uri 指定的地方
update(Uri uri, ContentValues values, String where, String[] selectionArgs)
//更新Uri 指定位置的数据
delete(Uri url, String where, String[] selectionArgs)
//删除指定Uri 并且符合一定条件的数据
ContentProvider 和ContentResolver 中用到的Uri在ContentProvider 和ContentResolver 当中用到了Uri 的形式通常有两种,一种是指定全部数据,另一种是指定某个ID 的数据.我们看下面的例子:
content://contacts/people/
//这个 Uri 指定的就是全部的联系人数据
content://contacts/people/1
//这个 Uri 指定的是ID 为1 的联系人的数据
在上边两个类中用到的Uri 一般由3 部分组成
第一部分是:"content://".
第二部分是要获得数据的一个字符串片段.
最后就是ID(如果没有指定ID,那么表示返回全部).
由于 URI 经常比较长,而且有时候容易出错,且难以理解.所以,在Android 当中定义了一些辅助类,并且定义了 一些常量来代替这些长字符串的使用Contacts.People.CONTENT_URI(联系人的URI)
下面通过一个例子来演示:
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
//得到应用的ContentResolver 实例
Cursor c = getContentResolver().query(Phones.CONTENT_URI, null, null, null, null);
startManagingCursor(c);
//我们将生成的Cursor 交给Activity 来管理,这样的好处是系统能自动做很多事情,比如当程序暂停的时候,这个系统可以卸载Cursor 以节省空间,当程序重新启动的时候系统重新查询生成Cursor.
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);
}
分享到:
相关推荐
以下将详细介绍这几种存储方式,并针对Android平台的特定实现进行讨论。 1. SharedPreferences SharedPreferences是Android提供的一种轻量级的数据存储方式,主要用于存储简单的键值对数据,如int、long、boolean、...
下面将详细探讨Android中的几种数据存储方式及其应用场景。 1. **Shared Preferences** Shared Preferences是Android中最简单的数据存储方式,用于保存键值对数据,通常用于存储用户的偏好设置。它提供了XML格式的...
本教程将详细介绍Android中的三种主要数据存储方式:SharedPreferences存储、内部文件存储以及数据库存储。 1. SharedPreferences存储 SharedPreferences是Android提供的一种轻量级的数据存储方式,用于保存应用...
在Android系统中,为了满足应用程序在不同场景下的数据存储需求,提供了多种数据存储方式。本文将详细介绍这五种主要的数据存储方法,旨在帮助开发者更好地理解并选择合适的数据存储方案。 ### 1. Shared ...
本教程将深入探讨Android中的几种主要数据存储方式,包括Shared Preferences、SQLite数据库以及文件存储。 首先,我们来讨论**Shared Preferences**。Shared Preferences是一种轻量级的数据存储方式,适合于存储...
通过分析其中的源码,我们可以了解到几种主要的数据存储方式。 1. **Shared Preferences**: Shared Preferences是Android中用来存储轻量级数据的一种方式,如用户偏好设置。它提供了键值对的接口,数据类型通常为...
Android应用程序主要由以下几个部分组成: - **Activity**:负责用户界面的显示和交互处理。 - **Service**:在后台执行长时间运行的操作,不提供用户界面。 - **Broadcast Receiver**:用于接收系统或其他应用程序...
Android提供了多种数据存储方式,以适应不同的需求和场景。以下是Android系统支持的五种数据存储方法的详细解释: 1. **SharedPreferences**: SharedPreferences主要用于存储轻量级的数据,如设置、偏好等。它是一...
在Android开发中,数据存储是不可或缺的一部分,它允许应用程序持久保存数据,以便在用户退出应用后还能恢复状态或在后续使用中访问数据。本资源"android数据存储ppt课件及Demo"提供了一个全面学习Android数据存储的...
本章将介绍几种常见的数据存储方式,包括: - SharedPreferences - 文件存储 - SQLite数据库 - Content Provider - 网络存储 这些方法适用于不同场景下的数据管理和共享需求。 #### 8.2 SharedPreferences 存储 *...
本文将深入探讨Android的数据存储技术,包括几种主要的存储方式及其应用场景。 首先,我们有共享首选项(SharedPreferences)。SharedPreferences提供了一个轻量级的存储机制,用于保存键值对数据,通常为简单的...
在Android中,数据存储主要有以下几种方式: 1. **SharedPreferences**:这是一种轻量级的存储方式,通常用于存储用户设置和简单的键值对。SharedPreferences使用XML文件存储数据,提供方便的API供读写操作。 2. *...
本篇将深入探讨Android中的数据存储方式,主要关注标题“Android应用源码之24.数据存储(3)”所涵盖的几个关键知识点,包括Shared Preferences、SQLite数据库、文件存储以及Content Providers。 1. Shared ...
Android四种数据存储的应用方式 Android系统提供了四种数据存储方式,即SharePreference、文件存储、SQLite和Content Provider。每种方式都有其特点和应用场景。 SharePreference SharePreference是一种轻量级的...
### Android 数据存储详解 ...以上是对Android应用数据存储方式的详细介绍,包括了每种方式的基本概念、特点以及具体的实现步骤。希望这些内容能够帮助读者更好地理解和掌握Android应用中的数据存储技术。
在这个话题中,我们将深入探讨几种常见的数据存储方法以及它们在网络数据处理中的应用场景。 1. **Shared Preferences**:对于小量的键值对数据,例如用户设置或轻量级的配置信息,Android提供了Shared Preferences...
在数据存储安全方面,Android应用主要面临两种存储方式的挑战:外部存储和内部存储。 1. 外部存储安全:外部存储是设备的公共存储区域,任何应用都能访问该区域,因此存储在此的数据面临着被读取或篡改的风险。...
综上所述,理解并掌握Android内部SD卡(即内置SDcard3)的数据存储方式对于开发高效、安全的Android应用至关重要。开发者需要根据实际需求选择合适的数据存储方案,并确保遵循Android的最佳实践和安全规范。通过熟练...