zoukankan      html  css  js  c++  java
  • 8、四大组件之三-ContentProvider

    课程目标:

    理解ContentProvider的作用及好处

    认清ContentProvider与数据存储的关系 

    掌握ContentProvider对外提供的数据模型形式

    能够编写ContentResolver的增删改查

    能够自定义一个ContentProvider ,能够提供进程间访问

    了解ContentProvider 内部机制

    重点难点:

    ContentProvider与数据操作的关系

    ContentProvider内部机制

     考核目标:

     说说ContentProvider与Android数据存储的关系?

     ContentProvider对象何时被实例化?

     ContentProvider数据模型画出来

     ContentProvider的机制是什么?

     

    一、为什么要有ContentProvider?

    1)我们之前的存储都是放在具体应用程序下面(具体的私有路径,限制访问权限),如何能够共享呢?

    2)系统由于安全的因素,提供的一些数据访问,不能直接开放给开发者,如何让开发者能够访问到这些数据呢?

    3)如果我写好的数据库程序,希望封装并且提供一套公共标准,让外部调用而不直接操作我的数据库,如何做呢?

     

    二、特性

    唯一的共享程序间数据方式。

    android没有提供公共数据区让不同的程序去共享访问。

     

    三、ContentProvider是什么?

    1)ContentProvider是一套存储访问数据的通道,让你无需了解下面的存储细节实现数据操作及共享。

    2)无论具体存储是如何的,存在哪儿的,但对外提供的模型是统一的。

         ContentProvider 实际上是个管道,把表提供出来。

    3)定义了ContentProvider对象,会在系统初始化的时候自动实例化,无需我们手动去实例化对象。

    4)我们只需要通过ContentResolver去取的和操作数据即可。

     

    四、ContentResolver与ContentProvider配对

     

    五、URI

     

    六、系统提供的ContentProvider

    Browser :浏览器的书签 ,历史记录等。

    CallLog :呼叫记录。包括呼入呼。

    ContactsContract :通讯录相关信息。

    Calendar :日历相关信息。

    MediaStore :媒体存储。

    Settings :系统设置信息的部分内容。

    UserDictionary :用户词典内容。

     

    七、增删改查

     

    八、查询系统通讯录

     

    九、创建自己的ContentProvider

     

    十、猜猜ContentProvider机制是什么样的 ?

     

    十一、FAQ:ContentProvider调用的时候宿主进程生命周期

    接受调用的时候启动宿主进程 , 操作完毕后,宿主进程为empty

     

  • 相关阅读:
    leetcode------Remove Element
    leetcode------Merge Two Sorted Lists
    [转载]Unity3D 游戏引擎之使用C#语言建立本地数据库(SQLITE)
    [转载]VS2012创建MVC3项目提示错误: 此模板尝试加载组件程序集 “NuGet.VisualStudio.Interop, Version=1.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a”。
    [转载]Unity3D 访问Access数据库
    [转载]C#导入XLS数据到数据库
    [转载]Unity3D的断点调试功能
    [Unity3D]支持的视频格式
    unity 3d 获取鼠标当前坐标
    [转载]VS2012程序打包部署详解
  • 原文地址:https://www.cnblogs.com/androidsj/p/3972437.html
Copyright © 2011-2022 走看看