Android的内容观察者

有个很常见的需求就是当有新的短信来的时候,把内容显示在界面上。这里就要用到内容观察者。就是让你的程序监视短信,如果他内容发生变化的时候,你去获取。而短信那边做的情况就 是,当他自己的数据变化时,他告诉有个公共短信内存区,他说,我数据变化了!然后通过短信的内容提供者把短信的内容拿到公共内存区,你的程序再过去拿。这里有点简单的示例代码:

ContentResolver resolver = getContentResolver();
		Uri uri = Uri.parse("content://sms/");
		resolver.registerContentObserver(uri, true, new MyObserver(new Handler()));
		Cursor cursor = resolver.query(uri, new String[]{"address","date","type","body"}, null, null, null);
		cursor.moveToFirst();
		String address = cursor.getString(0);
		String body = cursor.getString(3);
		System.out.println(address+"---"+body);
		cursor.close();
时间: 2025-01-31 05:36:51

Android的内容观察者的相关文章

Android中内容观察者的使用---- ContentObserver类详解

 前言: 工作中,需要开启一个线程大量的查询某个数据库值发送了变化,导致的开销很大,后来在老大的指点下,利用了      ContentObserver完美的解决了该问题,感到很兴奋,做完之后自己也对ContentObserver做下总结.             ContentObserver--内容观察者,目的是观察(捕捉)特定Uri引起的数据库的变化,继而做一些相应的处理,它类似于    数据库技术中的触发器(Trigger),当ContentObserver所观察的Uri发生变化时,便会

【黑马Android】(05)短信/查询和添加/内容观察者使用/子线程网络图片查看器和Handler消息处理器/html查看器/使用HttpURLConnection采用Post方式请求数据/开源项目

备份短信和添加短信 操作系统短信的uri: content://sms/ <?xml version="1.0" encoding="utf-8"?> <manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.itheima28.backupsms" android:versionCode="1

android Html内容如何预先加载到缓存,提高webview刷新速度呢

问题描述 android Html内容如何预先加载到缓存,提高webview刷新速度呢 因为在webview加载html内容的时候,需要解析html内容,再加载到webview里面,导致显示速度比较慢,如何在得到html内容的前提下,预先加载到缓存,提高webview的显示速度呢? 解决方案 浏览器的作用就是将得到的数据显示出来,跟你得到文本流再在textview中显示一样,你说的渲染太耗时除非是你过去网络资源时没有开辟子线程,或者要显示的图形或者js太复杂.另外webview相当于你使用了一个

android中内容提供者的本质是一个类,那么广播接收器的本质是一个方法吗

问题描述 android中内容提供者的本质是一个类,那么广播接收器的本质是一个方法吗 android中内容提供者的本质是一个类,那么广播接收器的本质是一个方法吗 解决方案 广播接收器,也可以设计成一个类,并不一定是方法. 就算现在的 Android 设计成一个方法,但也并不是说必须,或者只能设计成一个方法.

android webview内容超出屏幕宽度

问题描述 android webview内容超出屏幕宽度 我用webview的loaddatawithbaseurl加载html字符串,但是内容的宽度超出屏幕的宽度了,网上搜的setlayoutalgorithm方法没用啊!我想要的效果是内容最多只显示屏幕的宽度,多了就进入下一行,以上方法无效,4.4版本以上就不行了 解决方案 webview是可以滚动的 解决方案二: Android 获取WebView的内容宽度高度

android textview内容消失问题

问题描述 android textview内容消失问题 我做了一个简单的fragment界面,主要是输入ID,然后向服务器查询内容后赋值回原来的界面上的textview,但是在运行的时候发生了一个奇怪的问题,一部分的textview消失了,具体很难描述,以下是整个过程的描述 这是个原始界面,在最上方输入编号,然后查询. 点击查询后,可以看见,背景内容已经加载,textview的内容已经进去了,但是加载完成后,textview 如上图,加载完成后,下面的Textview不见了,而且,连那些实现写好

Android开发实现简单的观察者与被观察者示例

本文实例讲述了Android开发实现简单的观察者与被观察者.分享给大家供大家参考,具体如下: 概述: 观察者模式(又被称为发布-订阅(Publish/Subscribe)模式,属于行为型模式的一种,它定义了一种一对多的依赖关系,让多个观察者对象同时监听某一个主题对象.这个主题对象在状态变化时,会通知所有的观察者对象,使他们能够自动更新自己. 观察者模式结构图 Subject:抽象主题(抽象被观察者),抽象主题角色把所有观察者对象保存在一个集合里,每个主题都可以有任意数量的观察者,抽象主题提供一个

Android组件系列----ContentProvider内容提供者

[正文] 一.ContentProvider简介: ContentProvider内容提供者(四大组件之一)主要用于在不同的应用程序之间实现数据共享的功能. ContentProvider可以理解为一个Android应用对外开放的接口,只要是符合它所定义的Uri格式的请求,均可以正常访问执行操作.其他的Android应用可以使用ContentResolver对象通过与ContentProvider同名的方法请求执行,被执行的就是ContentProvider中的同名方法.所以ContentPro

Android实现动态显示或隐藏密码输入框的内容_Android

本文实例展示了Android实现动态显示或隐藏密码输入框内容的方法,分享给大家供大家参考之用.具体方法如下: 该功能可通过设置EditText的setTransformationMethod()方法来实现隐藏密码或者显示密码. 示例代码如下: private Button mBtnPassword; private EditText mEtPassword; private boolean mbDisplayFlg = false; /** Called when the activity is