第一行代码-第7章 内容提供器
2016-11-16 14:00
183 查看
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类中的六个抽象方法。未完待续。。。。具体参考《第一行代码》。。。。。
相关文章推荐
- 第一行代码 第7章 内容提供器 -- 运行时权限
- 第一行代码 第7章 内容提供器 --实现跨程序数据共享
- 《第一行代码--Android》读书笔记之内容提供器
- android第一行代码-9.内容提供器
- 第一行代码-7.1 内容提供器简介
- 第一行代码学习笔记,第七章 内容提供者
- Android第一行代码学习笔记五----内容提供器
- 第一行代码-7.3 创建自己的内容提供器
- [Android][第一行代码][第 7 章 内容提供器]
- 【自学】Android Studio Project项目结构(第一行代码内容)
- Android第一行代码-第二版内容大纲
- 阅读郭林《第一行代码》的笔记——第7章 跨程序共享数据,探究内容提供器
- 第二行代码学习笔记——第七章:跨程序共享数据——探究内容提供器
- 第一行代码笔记,第七章-----探究内容提供者
- 如何使用C#在发送往client的内容上加js代码(转)
- ASP分页代码更新 (利用微软自己提供的pagesize功能)
- 获得其他网页内容代码
- (转)用.net实现远程获取其他网站页面内容!(核心代码分析)