`

ContentProvider

阅读更多

ContentProvider可以同进程,不同进程之间数据共享,

<provider
     android:name=".MyContentProvider"
     android:authorities="cn.wzl"/>

public class MyContentProvider extends ContentProvider {

    public static final UriMatcher uriMatcher = new UriMatcher(UriMatcher.NO_MATCH);
    static {
        uriMatcher.addURI("cn.wzl", "a", 0);
        uriMatcher.addURI("cn.wzl", "a", 1);
    }
    
    @Override
    public Uri insert(Uri uri, ContentValues values) {
        switch (uriMatcher.match(uri)) {
            case 0:
                break;
            case 1:
                break;
        }
        return null;
    }
}

Uri uri=Uri.parse("content://cn.wzl/a");
mContext.getContentResolver.insert(uri,...);

 

 

 

 

当一个应用程序要把自己的数据暴露给其他程序时,可以通过ContentProvider来实现。
其他应用可以通过ContenrResolver来操作ContentProvider暴露的数据。

如果应用程序A通过ContentProvider暴露自己的数据操作接口,那么不管A 是否启动,其他程序都可以通过该接口来操作A的内部数据,常有增、删、查、改。

ContentProvider是以Uri的形式对外提供数据,ContenrResolver是根据Uri来访问数据。
步骤:

  • 定义自己的ContentProvider类,该类需要继承Android系统提供的ContentProvider基类。
  • 在Manifest.xml 文件中注册ContentProvider,(四大组件的使用都需要在Manifest文件中注册) 注册时需要绑定一个URL。

    • 例如: android:authorities="com.myit.providers.MyProvider"
    • 说明:authorities就相当于为该ContentProvider指定URL。 注册后,其他应用程序就可以通过该Uri来访问MyProvider所暴露的数据了。
  • 其他程序使用ContentResolver来操作。

    • 调用Activity的ContentResolver获取ContentResolver对象
    • 调用ContentResolver的insert(),delete(),update(),query()进行增删改查。

一般来说,ContentProvider是单例模式,也就是说,当多个应用程序通过ContentResolver来操作ContentProvider提供的数据时,ContentResolver调用的数据操作将会委托给同一个ContentResolver。

分享到:
评论

相关推荐

    Android+Room+ContentProvider

    在Android应用开发中,数据持久化是一个至关重要的环节,而Android Room和ContentProvider是其中的两个关键组件。本文将深入探讨这两个技术,并结合实际案例,解释如何在Android应用中使用它们来管理和共享SQLite...

    android 用ContentProvider操作文件

    在Android系统中,ContentProvider是一种核心组件,它允许应用程序之间共享数据,而无需直接访问对方的内部存储。在本教程中,我们将深入探讨如何利用ContentProvider来操作文件,以及其在跨应用数据传输中的作用。 ...

    androdi ContentProvider和Uri详解

    在Android开发中,ContentProvider和Uri是两个至关重要的概念,它们是Android系统中不同应用程序间数据共享和交互的基础。本文将深入探讨这两个组件的工作原理、使用方法以及它们在实际开发中的应用。 首先,我们来...

    两个apk之间广播互相通信及ContentProvider监听数据库的变换

    本教程将深入探讨如何利用Broadcast和ContentProvider实现两个apk之间的通信以及ContentProvider对数据库变更的监听。 首先,我们来理解Broadcast(广播)的概念。Broadcast是Android系统中一种全局的通知机制,...

    Android实现使用自定义ContentProvider共享生词本数据库

    Android高级编程雪梨作业之自定义ContentProvider 将任务01生词本作业中生成的生词本数据库通过自定义ContentProvider的方式,共享给其他应用。 要求如下: (1) 使用自定义SQLiteOpenHelper来管理数据库; (2) 提交...

    contentprovider

    ContentProvider是Android系统中的四大组件之一,它是Android应用程序间数据共享的主要机制。通过ContentProvider,一个应用可以将自己的数据暴露给其他应用,同时也能够访问其他应用公开的数据。在Android的封闭...

    ContentProvider多表创建

    在Android系统中,ContentProvider是实现数据共享和跨应用数据访问的重要组件。它遵循统一的URI(Uniform Resource Identifier)机制,使得不同的应用可以方便地读取和修改存储在ContentProvider中的数据。本教程将...

    ContentProvider使用方法demo

    ContentProvider是Android系统中用于数据共享的一个核心组件,它允许应用程序之间进行数据交换,而无需了解对方的具体实现。本教程将深入讲解ContentProvider的使用方法,包括基础操作、多ContentProvider管理和多表...

    android 自定义 ContentProvider 以及 ContentResolver

    在Android开发中,ContentProvider和ContentResolver是两个关键组件,它们构成了Android系统中不同应用程序间数据共享的基础。本文将深入探讨如何自定义ContentProvider和如何有效地使用ContentResolver进行数据操作...

    安卓学习之ContentProvider初步

    ContentProvider是Android系统中用于数据共享的重要组件,它是不同应用程序之间安全地交换数据的桥梁。当你想要在自己的应用中公开数据,允许其他应用进行访问时,就需要使用ContentProvider。虽然在许多情况下,...

    ContentProvider自定义以及使用系统ContentProvider

    在Android开发中,ContentProvider是四大组件之一,它扮演着数据共享的角色,使得不同应用程序间可以安全地访问和操作数据。本篇文章将深入探讨如何自定义ContentProvider以及如何使用系统提供的ContentProvider。 ...

    android contentprovider使用示例

    在Android开发中,ContentProvider是四大组件之一,它充当了数据共享的桥梁,使得不同的应用程序之间可以安全地访问和操作数据。本示例将详细解释如何在Android中使用ContentProvider。 1. **ContentProvider基本...

    ContentProvider 实战源码以及apk

    在Android开发中,ContentProvider是四大组件之一,它扮演着数据共享和跨应用数据访问的角色。本实战源码深入解析了ContentProvider的工作原理及其在实际项目中的应用,通过阅读源码,开发者可以更好地理解如何创建...

    用SharePreferences做ContentProvider

    `SharedPreferences` 和 `ContentProvider` 是两种常见的数据存储和共享机制。本篇文章将深入探讨如何利用 `SharedPreferences` 作为数据存储,并通过实现 `ContentProvider` 来实现不同应用间的数据共享。 `...

    android 创建数据库contentprovider

    在Android系统中,ContentProvider是一种重要的组件,它允许应用程序之间共享数据。`android 创建数据库contentprovider`这个主题主要涉及如何创建一个自定义的ContentProvider来管理数据库中的数据,并实现跨应用的...

    ContentProvider获取系统的图片视频和音频

    在Android系统中,ContentProvider是四大组件之一,它扮演着数据共享的角色,使得不同应用程序之间可以安全地访问和操作彼此的数据。本篇文章将详细讲解如何使用ContentProvider通过ContentResolver来获取系统的图片...

    contentProvider监听的例子

    在Android开发中,ContentProvider是系统提供的一种数据共享机制,它允许不同的应用之间进行数据交换。ContentProvider基于URI(统一资源标识符)进行操作,通过ContentResolver接口与ContentProvider进行通信。本...

Global site tag (gtag.js) - Google Analytics