android contentprovider理解

内容提供者用于保存和检索数据,使android系统中不同应用程序之间可以进行共享数据.以uri的形式对外提供数据.

首先用一个类继承android.content包下contentprovide,重写一下方法.

  1.public boolean oncreare()   创建contentprovide时调用.

  2.public int delete(Uri uri, String selection, String[] selectionArgs) 删除指定数据.

  3.public Uri insert(Uri uri, ContentValues values)  插入数据

  4.public int update(Uri uri, ContentValues values, String selection, String[] selectionArgs) 更新指定条件下的数据

  5.public Cursor query(Uri uri, String[] projection, String selection, String[] selectionArgs, String sortOrder) 查询指定条件的数据

  6.public String getType(Uri uri) 返回uri代表数据的MIME类型 

其次写uri,由content://authorities/path

  authorities指在清单文件中注册的android:authorities的值

  path代表数据,动态改变

如:

 private static UriMatcher matcher=new UriMatcher(UriMatcher.NO_MATCH);
    private static final int INSERT=1;
    private static final int DELETE=2;
    private static final int UPDATE=3;
    private static final int QUERY=4;
    private static final int QUERYONE=5;

    static {
        matcher.addURI("com.lss.readcontactmassage.PersonDBProvider","insert",INSERT);
        matcher.addURI("com.lss.readcontactmassage.PersonDBProvider","delete",DELETE);
        matcher.addURI("com.lss.readcontactmassage.PersonDBProvider","update",UPDATE);
        matcher.addURI("com.lss.readcontactmassage.PersonDBProvider","query",QUERY);
        //#为通配符,所有符合"query/"的都返回queryone的返回码
        matcher.addURI("com.lss.readcontactmassage.PersonDBProvider","query/#",QUERYONE);
    }

public int match(Uri uri)  返回addUri方法中传入的参数的code值

时间: 2024-10-10 16:09:19

android contentprovider理解的相关文章

Android的理解

从组件的角度来考虑 Activity------------------Service-----------------Broadcast Receiver----------------------ContentProvider 从流程的角度来看 View function------------>android functionality data----------------->android object 从业务流程角度来看 单Activity--------------->多

Android ContentProvider、ContentResolver和ContentObserver的使用

1.ContentProvider.ContentResolver和ContentObserver ContentProvider是Android的四大组件之一,可见它在Android中的作用非同小可.它主要的作用是:实现各个应用程序之间的(跨应用)数据共享,比如联系人应用中就使用了ContentProvider,你在自己的应用中可以读取和修改联系人的数据,不过需要获得相应的权限.其实它也只是一个中间人,真正的数据源是文件或者SQLite等. 一个应用实现ContentProvider来提供内容

我对Android的理解

前言 写这篇文章是为了和大家描述下我对Android的理解,同时会讲述下我后面的技术规划,希望能够对大家有点参考价值.大家都想学好Android,那么怎么才能学好呢?这个真不好说,但是我可以和大家交流下我自己的心得,当然仅限应用层开发,因为我本身是侧重应用层开发的. 知识的分类 Android中有很多知识点,虽然说大部分知识点都不难,但是量很多,这就会给人一种很琐碎的感觉.在这种情况下就要对知识进行分类,我对Android知识的分类为: 1. 基本知识点 比如四大组件如何使用.如何创建Servi

Android ContentProvider完整案例

ContentData类,提供数据常量: /** * 提供ContentProvider对外的各种常量,当外部数据需要访问的时候,就可以参考这些常量操作数据. * @author HB * */ public class ContentData { public static final String AUTHORITY = "hb.android.contentProvider"; public static final String DATABASE_NAME = "te

Android基础 : Android ContentProvider

Android 应用程序通过ContentProvider实现方式统一的数据共享功能. 外界的程序通过ContentResolver接口可以访问ContentProvider提供的数据,在Activity当中通过getContentResolver()可以得到当前应用的 ContentResolver实例. 参考文章 Android ContentProvider和getContentResolver

心得分享:关于对Android的理解,知识点梳理

前言 写这篇文章是为了和大家描述下我对Android的理解,同时会讲述下我后面的技术规划,希望能够对大家有点参考价值.大家都想学好Android,那么怎么才能学好呢?这个真不好说,但是我可以和大家交流下我自己的心得,当然仅限应用层开发,因为我本身是侧重应用层开发的. 知识的分类 Android中有很多知识点,虽然说大部分知识点都不难,但是量很多,这就会给人一种很琐碎的感觉.在这种情况下就要对知识进行分类,我对Android知识的分类为:  1. 基本知识点        比如四大组件如何使用.如

Android ContentProvider基本用法

转自:https://www.jianshu.com/p/601086916c8f 一.基本概念 ContentProvider是Android系统中提供的专门用户不同应用间进行数据共享的组件,提供了一套标准的接口用来获取以及操作数据,准许开发者把自己的应用数据根据需求开放给其他应用进行增删改查,而无须担心直接开放数据库权限而带来的安全问题.系统预置了许多ContentProvider用于获取用户数据,比如消息.联系人.日程表等. 二.ContentResolver 在ContentProvid

Android ContentProvider和getContentResolver

http://www.jcodecraeer.com/a/anzhuokaifa/androidkaifa/2012/0821/367.html 安卓系统中的数据库SqlLite操作和java中mysql的数据库操作很不一样,造成这样的原因是因为在安卓中数据库是属于进程的不存在数据库客户端,也不存在数据库服务器. 关于SqlLite数据库的文章可以参考 Android 使用SQLite数据库详解 : http://www.jcodecraeer.com/a/anzhuokaifa/android

Android ContentProvider详解

1.适用场景 1) ContentProvider为存储和读取数据提供了统一的接口 2) 使用ContentProvider,应用程序可以实现数据共享 3) android内置的许多数据都是使用ContentProvider形式,供开发者调用的(如视频,音频,图片,通讯录等) 2.相关概念介绍 1)ContentProvider简介 当应用继承ContentProvider类,并重写该类用于提供数据和存储数据的方法,就可以向其他应用共享其数据.虽然使用其他方法也可以对外共享数据,但数据访问方式会