第一行代码-第7章 内容提供器
来源:互联网 发布:指南针文献数据库 编辑:程序博客网 时间:2024/05/22 03:38
1. 内容提供器简介
内容提供器(Content Provider):主要用于不同的应用程序之间实现数据共享的功能。
它提供了一套完整的机制,允许一个程序访问另一个程序的数据,同时还能保证被访数据的安全性。
目前,使用内容提供器是android实现跨程序共享数据的标准方式。
内容提供器有两种用法:
- 使用现有的内容提供器来读取和操作应用程序的数据;
- 创建自己的内容提供器给我们程序的数据提供外部访问接口。
2. 访问其他程序中的数据
当一个程序通过内容提供器对其数据提供了外部访问接口,任何其他应用程序都可以对这部分数据进行访问。
Android系统自带的电话簿、短信、媒体库等程序,都提供了类似的访问接口,使得第三方应用程序可以充分利用这部分数据实现更好的功能。
实例:读取系统联系人(参考《第一行代码》)
package com.example.liu.contactstest;import android.database.Cursor;import android.provider.ContactsContract;import android.support.v7.app.AppCompatActivity;import android.os.Bundle;import android.widget.ArrayAdapter;import android.widget.ListView;import java.util.ArrayList;import java.util.List;public class MainActivity extends AppCompatActivity { ListView contactsView=null; ArrayAdapter<String> adapter=null; List<String> contactsList=new ArrayList<String>(); @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); contactsView=(ListView)findViewById(R.id.contacts_view); adapter=new ArrayAdapter<String>(this,android.R.layout.simple_list_item_1,contactsList); contactsView.setAdapter(adapter); readContacts(); } private void readContacts(){ Cursor cursor=null; //contactsList.add("liudong"+"\n"+"15527860778"); try{ cursor=getContentResolver().query(ContactsContract.CommonDataKinds.Phone.CONTENT_URI,null,null,null,null); while(cursor.moveToNext()) { String name = cursor.getString(cursor.getColumnIndex(ContactsContract.CommonDataKinds.Phone.DISPLAY_NAME)); String number = cursor.getString(cursor.getColumnIndex(ContactsContract.CommonDataKinds.Phone.NUMBER)); contactsList.add(name + "\n" + number); } }catch (Exception e){ e.printStackTrace(); }finally { if(cursor!=null){ cursor.close(); } } }}
3. 创建自己的内容提供器
可以通过新建一个类去继承ContentProvider的方式来创建一个自己的内容提供器。需要全部重写ContentProvider类中的六个抽象方法。
未完待续。。。。具体参考《第一行代码》。。。。。
0 0
- 第一行代码-第7章 内容提供器
- [Android][第一行代码][第 7 章 内容提供器]
- 第一行代码 第7章 内容提供器 -- 运行时权限
- 第一行代码 第7章 内容提供器 --基本用法
- 第一行代码 第7章 内容提供器 --实现跨程序数据共享
- 《第一行代码》读书笔记(十一)----内容提供器
- 《第一行代码--Android》读书笔记之内容提供器
- 第一行代码-7.1 内容提供器简介
- 第一行代码-7.3 创建自己的内容提供器
- Android第一行代码学习笔记五----内容提供器
- 内容提供器(ContentResolver)---《第一行代码Android》笔记
- 阅读郭林《第一行代码》的笔记——第7章 跨程序共享数据,探究内容提供器
- 《第一行代码》学习之旅--第7章-内容提供者ContentProvider
- 第一行代码学习笔记,第七章 内容提供者
- 第一行代码笔记,第七章-----探究内容提供者
- 第一行代码 读书笔记 第1章
- 第一行代码 读书笔记 第2章
- 读书笔记 《第一行代码》 第13章
- STM32 时钟树
- 出现 Column 'sp_id' in field list is ambiguous 的问题解决
- Android 实现app的版本升级(迭代)
- Android 6.0适配要点
- 《韩顺平JavaScript》视频+阮一峰《ECMAScript 6》学习笔记
- 第一行代码-第7章 内容提供器
- js 实现图片预览功能支持ie8
- linux 文件读写
- 海康威视采集卡 sdk 的包含文件问题
- Spring aop 原理及各种应用场景
- Javascript面向对象编程(二):构造函数的继承
- 内存溢出_myeclipse_JVM_Tomcat解决办法
- Git: 将本地项目上传到gitblit
- sqlite 数据库的创建以及单元测试插入、删除、更改数据库信息