【Android 简单通信组件学习】ContentProvide 唯一与所有app交互的组件

本文主要是介绍【Android 简单通信组件学习】ContentProvide 唯一与所有app交互的组件,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

  首先我们了解 ContentProvider组件

它 实现系统数据访问

  实现应用程序数据共享


补充一:

ContentProvider -数据提供者,

是Android四大组件之一,是程序之间数据共享的接口


Activity系统中对数据的访问限制是非常严格的,

不允许其他应用直接访问当前程序中存储在非SD卡中数据,

但是实际中我们经常会涉及到数据共享,

 ContentProvider则是应用程序提供为外部访问的一个窗户,

为数据共享提供了统一的访问方法


补充二:

ContentProvide对数据进行封装,不用关心数据存储的细节。使用表的形式来组织数据
ContentProvider可以在不同的应用程序之间共享数据
Android为常见的一些数据提供了默认的ContentProvider(包括音频、视频、图片和通讯录等)


补充三:方法

1、ContentProvider类主要方法的作用:

public boolean onCreate():

该方法在ContentProvider创建后就会被调用,Android开机后,ContentProvider在其它应用第一次访问它时才会被创建。


public Uri insert(Uri uri, ContentValues values):

供外部ContentProvider添加数据。 public int delete(Uri uri, String selection, String[] selectionArgs):

该方法用于供外部应用从ContentProvider删除数据。


public int update(Uri uri, ContentValues values, String selection, String[] selectionArgs):

该方法用于供外部应用更新ContentProvider中的数据。


public Cursor query(Uri uri, String[] projection, String selection, String[] selectionArgs, String sortOrder) 

用于供外部应用从ContentProvider中获取数据。 public String getType(Uri uri):用于返回当前Url所代表数据的MIME类型。
如果操作的数据属于集合类型,那么MIME类型字符串应该以vnd.android.cursor.dir/开头


补充四:

1、ContentResolver操作ContentProvider中的数据


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


监听ContentProvider中数据的变化


如果ContentProvider的访问者需要知道ContentProvider中的数据发生变化

可以在ContentProvider发生数据变化时调用getContentResolver().notifyChange(uri, null)

来通知注册在此URI上的访问者


例子:

QQ访问sd卡,读取图片,发送表情。

微信 访问通讯录,生成新的好友信息


代码效果:

一、添加学生:



查询学生:添加了几个,就能查询出几个



访问数据信息:

<

这篇关于【Android 简单通信组件学习】ContentProvide 唯一与所有app交互的组件的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!


原文地址:
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.chinasem.cn/article/656407

相关文章

Python pip下载包及所有依赖到指定文件夹的步骤说明

《Pythonpip下载包及所有依赖到指定文件夹的步骤说明》为了方便开发和部署,我们常常需要将Python项目所依赖的第三方包导出到本地文件夹中,:本文主要介绍Pythonpip下载包及所有依... 目录步骤说明命令格式示例参数说明离线安装方法注意事项总结要使用pip下载包及其所有依赖到指定文件夹,请按照以

基于Python实现一个简单的题库与在线考试系统

《基于Python实现一个简单的题库与在线考试系统》在当今信息化教育时代,在线学习与考试系统已成为教育技术领域的重要组成部分,本文就来介绍一下如何使用Python和PyQt5框架开发一个名为白泽题库系... 目录概述功能特点界面展示系统架构设计类结构图Excel题库填写格式模板题库题目填写格式表核心数据结构

Go学习记录之runtime包深入解析

《Go学习记录之runtime包深入解析》Go语言runtime包管理运行时环境,涵盖goroutine调度、内存分配、垃圾回收、类型信息等核心功能,:本文主要介绍Go学习记录之runtime包的... 目录前言:一、runtime包内容学习1、作用:① Goroutine和并发控制:② 垃圾回收:③ 栈和

Spring组件实例化扩展点之InstantiationAwareBeanPostProcessor使用场景解析

《Spring组件实例化扩展点之InstantiationAwareBeanPostProcessor使用场景解析》InstantiationAwareBeanPostProcessor是Spring... 目录一、什么是InstantiationAwareBeanPostProcessor?二、核心方法解

Android学习总结之Java和kotlin区别超详细分析

《Android学习总结之Java和kotlin区别超详细分析》Java和Kotlin都是用于Android开发的编程语言,它们各自具有独特的特点和优势,:本文主要介绍Android学习总结之Ja... 目录一、空安全机制真题 1:Kotlin 如何解决 Java 的 NullPointerExceptio

C/C++ chrono简单使用场景示例详解

《C/C++chrono简单使用场景示例详解》:本文主要介绍C/C++chrono简单使用场景示例详解,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友... 目录chrono使用场景举例1 输出格式化字符串chrono使用场景China编程举例1 输出格式化字符串示

RabbitMQ工作模式中的RPC通信模式详解

《RabbitMQ工作模式中的RPC通信模式详解》在RabbitMQ中,RPC模式通过消息队列实现远程调用功能,这篇文章给大家介绍RabbitMQ工作模式之RPC通信模式,感兴趣的朋友一起看看吧... 目录RPC通信模式概述工作流程代码案例引入依赖常量类编写客户端代码编写服务端代码RPC通信模式概述在R

在Spring Boot中实现HTTPS加密通信及常见问题排查

《在SpringBoot中实现HTTPS加密通信及常见问题排查》HTTPS是HTTP的安全版本,通过SSL/TLS协议为通讯提供加密、身份验证和数据完整性保护,下面通过本文给大家介绍在SpringB... 目录一、HTTPS核心原理1.加密流程概述2.加密技术组合二、证书体系详解1、证书类型对比2. 证书获

C++ RabbitMq消息队列组件详解

《C++RabbitMq消息队列组件详解》:本文主要介绍C++RabbitMq消息队列组件的相关知识,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友参考下吧... 目录1. RabbitMq介绍2. 安装RabbitMQ3. 安装 RabbitMQ 的 C++客户端库4. A

windows和Linux安装Jmeter与简单使用方式

《windows和Linux安装Jmeter与简单使用方式》:本文主要介绍windows和Linux安装Jmeter与简单使用方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地... 目录Windows和linux安装Jmeter与简单使用一、下载安装包二、JDK安装1.windows设