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的增删改查方法

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

  • 相关阅读:
    HDU 5059 Help him
    HDU 5058 So easy
    HDU 5056 Boring count
    HDU 5055 Bob and math problem
    HDU 5054 Alice and Bob
    HDU 5019 Revenge of GCD
    HDU 5018 Revenge of Fibonacci
    HDU 1556 Color the ball
    CodeForces 702D Road to Post Office
    CodeForces 702C Cellular Network
  • 原文地址:https://www.cnblogs.com/clevergirl/p/5667847.html
Copyright © 2011-2022 走看看