`

android Content provider

阅读更多

Content provider,为其它应用程序(也可以是提供该Content provider的应用程序)
提供了一个接口一致数据储存模型。通过该接口,你可以方便地提取你想要的数据,
修改或者是删除都会变得相当方便。依照 ANDROI组件模型的原理,把数据储存与数据显示分离天来,
这不但提高了组件重用性,也同时提供更高的完全性(每一个Content Provider都有自己的许可属性)。
作为数据储存的后端,你可以使用有Sqlite3保存数据,也可以使用文件系统保存,甚至是使用网络;
后端的多样 性给得程序的设计更富有弹性。

每一个实现都在从ContentProvider类继承,并实现ContentProvider的抽象函数:
delete(), insert(), query(), update(), getType()和onCreate().
代码片断:

class myContentProvider extends ContentProvider {
        //删除符合指定条件的记录
        public int delete(Uri uri, String selection, String[] selectionArgs);
        //插入一个新的记录
        public Uri insert(Uri uri, ContentValues values);
        // 查询符合指定条件的记录
        public Cursor query(Uri uri, String[] projecttion, String selection, String[] selectionArgs, String sortOrder);
        //更新条例指定条件的记录
        public int update(Uri uri, ContentValues values, String selection, String[] selectionArgs);
        //基于给定uri,返回该uri表示的类型
        public String getType(Uri uri);
        //创建数据储存后端,如数据库,文件,网络接口等
        public boolean onCreate();

        ......
}


如果使用Sqlite3作为数据后端(本例只讨论这种情况,如使用其它方法,如文件系统,网络,则大同小异),数据库的创建,
打开,更新,可以使用帮助类SQLiteHelper来完成,该类将对数据库的操作作了有效的封装,有利于我们使用。
代码片断: 

1.class youtDbHelper extends SQLiteHelper {   
2.    // 创建数据库   
3.    public void onCreate(SQLiteDatabase db);   
4.    // 更新数据库   
5.    public void onUpdate(SQLiteDatabase db, int oldVersion, int newVersion)   
6.      
7.    ......   
8.}  

 为方便其它应用程序与该ContentProvider通信,通常我们要提供一个公共的Uri: CONTENT_URI,其它组件正是通过这一Uri,
与ContentProvider交流。在我们的ContentProvider创建好之后,我们不直接与之打交道,而是通过ANDROID的
ContentResolver进行操作。通过ANDROID系统的自动分析,会选择一个合适的ContentProvider进行通信。只要我们指定
我们之前定义的CONTENT_URI,就可能与之勾通了。
代码片断:

1.Cursor cursor = getContentResolver().query(uri, projection, selection, selectionArgs, sortOrder);            
2.    //或者   
3.    Cursor cursor = manageQuery(uri, null, null, null, null);   
4.    // 可以使用游标cursor获取想要的信息   
5.    ...   
6.    // 删除   
7.    int count = getContentResolver().delete(Uri url, String where, String[] selectionArgs);   
8.   ......  

 对Uri的说明:
   Uri(unified Resource identifier)就是统一资源标识,指定了一个特定的资源,遵照RFC2396规范。
   一般格式为:
   

Java代码
  1. <scheme>://<authority><path><query>#<fragment>  
 <scheme>://<authority><path><query>#<fragment>

  
例如:

Java代码
  1. content://your.contentprovider/what_u_provided  
content://your.contentprovider/what_u_provided

   
其中scheme=content 表示专为ContentProvider使用。 

 

分享到:
评论

相关推荐

    android content provider示例程序(简单记账)

    在Android开发中,Content Provider是四大组件之一,它扮演着数据共享的角色,使得不同应用程序间可以安全地访问和操作数据。这篇博文的示例程序"android content provider示例程序(简单记账)"旨在帮助开发者理解...

    Android Content Provider Demo

    在Android开发中,Content Provider是四大组件之一,它扮演着数据共享的角色,使得不同应用程序间可以安全地访问和操作数据。本"Android Content Provider Demo"着重于演示如何创建和使用Content Provider来实现跨...

    android content provider

    【Android Content Provider】是Android系统中的一个重要组件,它主要用于在应用程序之间共享数据。Content Provider作为Android四大组件之一,为其他应用提供了访问私有数据的标准化接口。通过Content Provider,一...

    Android Content Provider用法样例.rar

    Android Content Provider用法样例,解析如何使用“内容提供商”Content Provider共享不同应用的数据,本Android例子将使用Content Provider实现了获取联系人信息,里面的注释非常丰富,是学习android的好资料。

    android content provider两个程序共享数据实例demo

    android content provider两个程序共享数据实例demo。简单的两个应用app之间共享数据。 getContentResolver().insert() getContentResolver().query() getContentResolver().delete() getContentResolver().update()

    Android Content Provider详解及示例代码

    Android:Content Provider的使用。 1、Content Provider 简介 2、使用现成的Content Provider 3、定义自己的Content Provider 一、Content Provider 简介 我们说Android应用程序的四个核心组件是:Activity、...

    浅谈Android Content Provider的使用

    《深入解析Android Content Provider的使用》 Content Provider作为Android四大组件之一,是Android系统中实现数据共享的关键机制。本文将详细阐述Content Provider的定义、配置、功能以及如何通过Uri进行数据操作...

    Android基础 Content Provider

    **Android基础 Content Provider** 在Android开发中,Content Provider是一个至关重要的组件,它充当了应用程序间数据共享的桥梁。本文将深入探讨Content Provider的基本概念、创建方法、如何进行CRUD(Create、...

    Android组件content provider使用解析

    Android 组件 Content Provider 使用解析 Content Provider 是 Android 四大组件之一,主要作用是实现各个应用程序之间的数据共享。它提供了一种机制,允许不同的应用程序共享数据,实现跨应用程序之间的数据交互。...

    android中Content Provider

    在Android系统中,Content Provider是四大组件之一,它是应用程序间数据共享的核心机制。Content Provider允许一个应用暴露其数据,使得其他应用可以读取或者写入这些数据,甚至跨应用程序进行数据交换。这篇博客...

    查看android.provider包中的uri内容

    在Android开发中,`android.provider`包是系统提供的一个核心包,主要用于与系统的各种内容提供者(Content Provider)进行交互。这些内容提供者是Android系统数据共享的关键组件,它们允许应用访问并操作如联系人、...

    Android新手Content Provider获取通讯录,短信,通话记录

    理解Content Uri的概念和作用,掌握通过Content Provider访问联系人的方法,掌握通过Content Provider访问通话记录的方法,掌握通过Content Provider访问短信的方法。

    android 自定义 Content Provider示例

    在Android开发中,Content Provider是四大组件之一,它充当了数据共享和交换的桥梁,使得不同的应用程序之间可以安全地共享数据。本示例将详细解析如何自定义Content Provider,以便在Android应用间实现数据共享。 ...

    android provider

    在Android系统中,Content Provider是四大组件之一,它扮演着数据共享和交换的重要角色。Content Provider使得应用程序可以将自己的数据暴露给其他应用,同时也能够访问其他应用公开的数据。在这个"android provider...

    content_provider_demo

    在Android开发中,Content Provider是一种重要的组件,它允许应用程序之间共享数据。`content_provider_demo`是一个展示如何创建和使用Content Provider的示例项目。在这个项目中,开发者将学习如何为其他应用提供...

    android-simple-content-provider-app:简单的Android Content Provider使用示例

    在Android开发中,Content Provider是四大组件之一,它扮演着数据共享和跨应用通信的关键角色。本示例项目"android-simple-content-provider-app"是专门为初学者设计的,旨在讲解如何在Android应用程序中创建和使用...

    Content Provider获取联系人和图片

    在Android系统中,Content Provider是四大组件之一,它扮演着数据共享的角色,使得不同应用程序之间可以安全地访问和操作数据。本篇文章将深入探讨如何利用Content Provider获取联系人和图片,以及相关的知识点。 ...

    content provider实现数据共享demo(内有两个项目)

    在Android应用开发中,Content Provider是一种重要的组件,它允许应用程序之间进行数据共享。Content Provider作为Android系统中的数据接口,能够使一个应用的数据被其他应用访问和操作,这在多应用协同工作或者数据...

    Android中使用Content Provider组件访问通讯录中的联系人和添加联系人案例详解

    在Android系统中,Content Provider是四大组件之一,它扮演着数据共享的角色,使得不同应用程序间可以安全地共享数据。本文将深入探讨如何使用Content Provider组件来访问和操作Android设备上的通讯录,特别是针对...

Global site tag (gtag.js) - Google Analytics