zoukankan      html  css  js  c++  java
  • ContentProvider简介

    内容提供者(ContentProvider)

    数据库文件一般是私有的(-rw-rw----),其他应用程序无法访问该程序私有的数据库。

    目的:保证应用程序数据库的安全,每个应用程序都是独立的,不可以操作另外一个应用程序数据库的数据。

    有一些特殊的需求,需要把自己私有的数据库暴露给别的应用程序,让别的应用程序访问。

    内容提供者ContentProvider就是做这件事情的。

    内容提供者ContentProvider创建的步骤

    • MyContentProvider extends ContentProvider

    • 在清单文件配置内容提供者(节点为provider,其中name属性要写ContentProvider的包名与类名,authorities属性意为主机名,可以随便写,不过最好顾名思义。)配置完整类路径、主机名。

      android:authorities="com.example.db.persondb"
      android:name="com.example.test_contentprovider.MyContentProvider">

    • MyContentProvider定义一些数据操作的URI,利用UriMatcher指定一些特殊的路径

      //content://com.example.db.persondb/query 查询
      //content://com.example.db.persondb/insert 添加
      //content://com.example.db.persondb/update 修改
      //content://com.example.db.persondb/delete 删除

    • 实现MyContentProvider 的增删改查的方法(根据业务需求去实现)
      实现了query方法。

    1. 检查uri路径是否正确
    2. 如果正确则return一个Cursor
    3. 如果不正确抛出一个异常

    如何使用ContentProvider查询数据

    1. 获取ContentProvider的解析器ContentResolver
      ContentResolver resolver = getContentResolver();
    2. 调用resolver的增删改查方法

      ---恢复内容结束---

  • 相关阅读:
    设计一个数据结构,包含两个函数,1.插入一个数字,2.获得中数
    数状数组
    25匹马,每次能5匹一起跑,选出最快的3匹
    禁止ImageCapture自动启动
    SublimeText Videos Notes
    10G个64bit整数,找出中位数
    python初步要点II
    python初步要点
    找出丢失的数字
    nice & renice
  • 原文地址:https://www.cnblogs.com/clevergirl/p/5667847.html
Copyright © 2011-2022 走看看