• Android基础_ContentProvider组件


    一.了解Contentprovider组件

    1.1Contentprovider是数据的提供者,Android四大组件之一,程序之间数据共享的接口

    1.2activity系统中对数据的访问限制十分严格,不允许其他应用直接访问当前程序中存放在非SD卡上的数据,但是实际开发中存在APP之间的数据共享

    contentProvider是应用程序提供给外部访问的一个接口,为数据共享提供统一的访问方法

    二.使用Contentprovider实现数据库的访问

    2.1ContentProvider类主要方法的作用:

    public boolean onCreate();在contentProvider创建后被调用

    public uri insert(Uri uri,ContentValue value):供外部的ContentProvider添加数据

    public int delete(Uri uri, String selection,String[] selectionArgs):供外部的ContentProvider删除数据

    public int updata(Uri uri,ContentValue value, String selection,String[] selectionArgs ):供外部应用ContentProvider更新数据

    pulbic Cursor query(Uri uri,String[] projection,String selection,String[] selectionArgs):用于外部的ContentProvider获取数据

     2.2Uri:统一资源定位符

    A:标准前缀,用来说明一个Content Provider控制这些数据,无法改变的;
    B:URI 的标识,唯一标识ContentProvider,外部调用者可以根据这个标识来找到它。为了保证URI标识的唯一性,它必须是一个完整的、小写的类名。一般是定义该ContentProvider的包.类的名称
    C:路径(path),通俗的讲就是你要操作的数据库中表的名字,或者你也可以自己定义,记得在使用的时候保持一致就可以了;
    D:如果URI中包含表示需要获取的记录的ID;则就返回该id对应的数据,如果没有ID,就表示返回全部; "content://com.gdnf.provider/tablename/#" #表示数据id。

     2.3UriMatcher

    UriMatcher主要用在ContentProvider中,用来构建URI匹配项和判断Uri的正确性,如在insert之前先判断用户传进来的Uri是否与UriMatcher定义的匹配

    2.4ContentUris负责操作URI

    1.Long id=ContentUris.parseId(uri);取出URI中传递的ID
    2.Uri uri=ContentUris.withAppendedId(uri,id);为Uri追加ID

    三.使用Contentprovider实现应用程序数据共享

    3.1ContentResolver操作ContentProvider中的数据

    当外部应用需要对ContentProvider中的数据进行添加、删除、修改和查询操作时,可以使用ContentResolver 类来完成,要获取ContentResolver 对象,可以使用getContentResolver()方法获取ContentResolver对象

    3.2监听ContentProvider中数据的变化

    如果ContentProvider的访问者需要监听ContentProvider中的数据变化,可以注册一个观察者getContentResolver().registerContentObserver(uri,bool,observer)

    3.3数据提供者在数据发生改变时发出消息

    getContent().getContentResolver().notifyChange(uri,null)

  • 相关阅读:
    CMDB服务器管理系统【s5day92】:服务器管理回顾
    主机管理+堡垒机系统开发:需求讨论(一)
    saltstack主机管理项目:今日总结(六)
    saltstack主机管理项目:动态调用插件解析-模块解析(五)
    saltstack主机管理项目:编写插件基类-获取主机列表-提取yaml配置文件(四)
    saltstack主机管理项目:计主机管理项目命令分发器(三)
    saltstack主机管理项目:主机管理项目需求分析(一)
    saltstack主机管理项目:主机管理项目架构设计(二)
    CMDB服务器管理系统【s5day89】:采集资产之整合资产
    CMDB服务器管理系统【s5day89】:采集资产之汇报信息
  • 原文地址:https://www.cnblogs.com/Crezy/p/8058300.html
Copyright © 2020-2023  润新知