Android移动应用基础教程【使用内容提供者共享数据】

简介: Android移动应用基础教程【使用内容提供者共享数据】

一、内容提供者概述

image.png

image.png



二、创建内容提供者

image.png

三、访问其他应用程序

1、查询其他程序的数据

//获取相应操作的Uri,Uri.parse()方法是将字符串转化成Uri对象。
  Uri uri = Uri.parse("content://cn.itcast.mycontentprovider/person"); 
  //获取ContentResolver对象
    ContentResolver resolver = context.getContentResolver();
    //通过ContentResolver对象查询数据
    Cursor cursor = resolver.query(Uri uri, String[] projection, String selection,
                                     String[] selectionArgs, String sortOrder);
    while (cursor.moveToNext()) {
        String address = cursor.getString(0); 
        long date = cursor.getLong(1);
        int type = cursor.getInt(2);
   }
    cursor.close();

image.png


2 、查询系统短信

image.png

四、内容观察者

1、什么是内容观察者

image.png

//创建内容观察者
 private class MyObserver extends ContentObserver{
        public MyObserver(Handler handler) {
            super(handler);
        }
        //当观察到Uri代表的数据发生变化时调用此方法,程序会回调onChange()方法,
        //并在该方法中处理相关逻辑
        public void onChange(boolean selfChange) {
            super.onChange(selfChange);
          }
    }
  ContentResolver resolver = getContentResolver();
    Uri uri = Uri.parse("content://aaa.bbb.ccc");
    //注册内容观察者
    resolver.registerContentObserver(uri, true, new MyObserver(new Handler()));

image.png

@Override
protected void onDestroy() {
     super.onDestroy();
     //取消注册内容观察者
     getContentResolver().unregisterContentObserver(new MyObserver(       
                new Handler()));
}

image.png

2、监测数据变化

image.png

五、本章小结

本章详细地讲解了内容提供者的相关知识,首先简单地介绍了内容提供者,然后讲解了如何创建内容提供者以及如何使用内容提供者访问其他程序暴露的数据,最后讲解内容观察者,通过内容观察者观察数据的变化。本章所讲的ContentProvider是Android四大组件之一,在后续遇到程序之间需要共享数据时,会经常用到该组件,因此要求初学者一定要熟练掌握本章内容。

目录
相关文章
|
1天前
|
消息中间件 网络协议 Java
Android 开发中实现数据传递:广播和Handler
Android 开发中实现数据传递:广播和Handler
17 1
|
1天前
|
JSON Android开发 数据格式
android与Web服务器交互时的cookie使用-兼谈大众点评数据获得(原创)
android与Web服务器交互时的cookie使用-兼谈大众点评数据获得(原创)
19 2
|
1天前
|
API Android开发
Android高手进阶教程(十五)之---通过Location获取Address的使用!
Android高手进阶教程(十五)之---通过Location获取Address的使用!
11 1
|
1天前
|
存储 Java 开发工具
在Eclipse配置安装Android详细教程(新手)
在Eclipse配置安装Android详细教程(新手)
23 1
|
1天前
|
Java Linux API
统计android设备的网络数据使用量
统计android设备的网络数据使用量
15 0
|
1天前
|
存储 Java Android开发
Android轻量级数据SparseArray详解
Android轻量级数据SparseArray详解
6 0
|
1天前
|
缓存 监控 数据库连接
提升移动应用性能的关键策略:以Android为例
【5月更文挑战第14天】 在竞争激烈的移动应用市场中,卓越的性能是吸引和保留用户的重要因素。本文聚焦于Android平台,探讨了一系列提高移动应用响应速度、流畅度以及稳定性的策略。从内存优化到多线程处理,再到高效的网络通信,文中详细分析了各种性能瓶颈,并提出了相应的解决方案。通过实际案例和代码示例,我们展示了如何在实践中应用这些策略以实现性能的显著提升。
|
1天前
|
Android开发 数据库管理
Android如何在Activity和Service之间传递数据
Android如何在Activity和Service之间传递数据
11 3
|
1天前
|
Android开发
Android教程之Android 用户界面-表格视图(GridView)
Android教程之Android 用户界面-表格视图(GridView)
10 1
|
1天前
|
XML JSON API
转Android上基于JSON的数据交互应用
转Android上基于JSON的数据交互应用
10 1