自定义ContentProvider】的更多相关文章

1.   适用范围 对于什么情况下才会用到自定义的ContentProvider,官方文档的Dev Guide是这样描述的: 如果你想要提供以下的一种或几种特性的时候你才需要构造一个ContentProvider: 你想要为其它的应用提供复杂的数据或者文件: 你想允许用户从你的应用中拷贝复杂的数据到其它的应用中: 你想要使用搜索框架来提供自定义的搜索策略. 你完全不需要ContentProvider来调用一个SQLite数据库,如果这种调用完全在你自己的应用之中. 也就是说,ContentPro…
ContentProvider作为安卓的四大组件之一,在看开发中用到的频率远不如其他三个,以至于我都把这个东西给忘了,最近由于工作原因,不得不重新拾起来总结一下,那么今天就来说说自定义ContentProvider吧. 今天的案例是这样的,我们有两个App,一个叫做cpHost,作为内容提供者:另外一个叫做cpTest,专门用来操作这个cpHost中的数据.我们的cpHost中有一个数据库,该数据库中有一个User表,我们通过内容提供者将这个User表共享出去,供其他App调用.下面我们就来看看…
Android的数据存储有五种方式Shared Preferences.网络存储.文件存储.外储存储.SQLite,一般这些存储都只是在单独的一个应用程序之中达到一个数据的共享,有时候我们需要操作其他应用程序的一些数据,例如常见系统里的通讯录,短信,照片等等,所以云存储,通讯录,艳照门等等就孕育而生了.ContentProvider可以理解成内容提供者,也可以理解为一个接口,就是提供了一个供外部访问的接口,有的时候需要进行权限控制. ContentProvider简介 ContentProvid…
首先,还是展示一下部分目录结构:  在节日短信送祝福的功能实现方面,为了能够方便直观展示实现过程,小编我以Java文件为基础,一个一个来展示,免得到时候这个java文件写点,一下又跳到另外一个java文件写点,毕竟这不像教学视频那样直观. 因为在功能方面涉及到了显示已经发送短信的历史记录,那么,毫无疑问,要用到数据库,但是在定义SQLiteOpenHelper之前先定义一个”已经发送的短信的实体类”(SendedMsg): SendedMsg.java public class SendedMs…
现在,ContentProvider已经创建好了,可以去尝试使用一下. 1. 使用之前的工程,在布局文件main.xml中添加一些控件. <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="fill_par…
最近在code review的时候发现很多人的provider定义的不是很好,写的很粗糙 以至于代码健壮性不够好,可读性也不强 但是你既然写了content provider 就是要给别人调用的,如果provider写的漏洞百出的话  还不如不写, 要么别让别的app 对你的数据进行crud,要么就让自己的app 直接用db 来操作数据,既然要写provider,就要写的标准 优雅~~放一个provider的实例在这里,有大量注释 告诉你为什么要这么写.跟我一样有代码洁癖的人可以参考下. pac…
前言: 总结这篇文章之前我们先来回顾一下Android Sqlite数据库,参考文章:http://www.cnblogs.com/whoislcj/p/5506294.html,Android程序内部数据存储如果使用Sqlite数据库,那么Android 如何实现程序间数据共享?Android 提供了一种机制可以实现程序间的数据共享,它就是Android 四大组件之一ContentProvider,Android为存储和获取数据提供统一的接口,用于实现程序间数据共享,不要将其理解为数据库. 为…
转自:http://cthhqu.blog.51cto.com/7598297/1281217 1. ContentProvider的概述 ContentProvider: (Official Definition)Content providers manage access to a structured set of data. They encapsulate the data, and provide mechanisms for defining data security. Con…
借用ContentResolver类访问ContentProvider中共享的数据.通过getContentResolver()方法获得该类的实例. ContentResolver中的方法:insert().updata().delete().query() ContentResolver中增删改查方法传入的是Uri(权限.路径):content://com.examlple.app.provider/table1 获得Uri字符串之后,需要将其解析成Uri对象才能作为参数传入,调用Uri.pa…
1.什么情况下需要使用ContentProvider 跨进程提供数据访问的接口,如果在同一个App下,没有必要使用此种方式 2.自定义ContentProvider public class MyContentProvider extends ContentProvider { private MyDbHelper helper; //Sqlite帮助类 private SQLiteDatabase db; private static UriMatcher matcher; private s…