Android 当数据库变动时更新UI数据 注册观察者监听

/**
	 * Register an observer for provider status changes - we will need to
	 * reflect them in the UI.
	 */
	private void registerObserver() {
		getContentResolver().registerContentObserver(
				ContactsContract.Contacts.CONTENT_URI, true, mObserver);
		getContentResolver().registerContentObserver(
				CallLog.Calls.CONTENT_URI, true, mObserver);
	}

	private void unregisterObserver() {
		getContentResolver().unregisterContentObserver(mObserver);
	}

	private ContentObserver mObserver = new ContentObserver(new Handler()) {

		@Override
		public void onChange(boolean selfChange) {
			isContactChanged = true;
		}
	};
时间: 2024-09-23 21:28:44

Android 当数据库变动时更新UI数据 注册观察者监听的相关文章

android sqlite数据库表字段更新

问题描述 android sqlite数据库表字段更新 android sqlite数据库表字段更新,调用onUpgrade方法出现了Can't upgrade read-only database from version 3 to 4: 异常,有哪个大神碰到过或者知道怎么解决. 代码: public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) { String sql = " alter table pe

关于android创建数据库后找不到数据表

问题描述 关于android创建数据库后找不到数据表 新手求教,用cmd运行splite>.table没反应,select * from xxx时显示no such table.找到数据库的文件导出后用记事本打开显示乱码..怎么办,求大神指点 解决方案 说明你只创建了数据库没有创建表吧:你可以将导出来的数据库文件用数据库打开看下里面有没有表 解决方案二: sdk中有一个叫 platform-tools 的文件夹里面的 sqlite3 可以用来查看导出的数据库文件 具体的操作是 打开sqlite3

android如何使用BroadcastReceiver后台实现来电通话记录的监听

android如何使用BroadcastReceiver后台实现来电通话记录的监听并存取到sqllite数据库通过Contentprovilder实现接口 BroadcastReceiver 是android四大组件的一个,本质上是一种全局的监听器 ,用于监听全局的广播消息.下面实现了后台监听android手机通话记录.本demo 分两个程序,第一个程序是设置监听器,然后模拟器重启后就会有一个全局的 service在后台监听你的来电显示,大多数通话管理软件都是这么干的,第二个项 目是获取通话记录

java-新人求助,为什么我的UDP和串口调试助手只能发送一次数据,再发数据必须重新监听,为什么

问题描述 新人求助,为什么我的UDP和串口调试助手只能发送一次数据,再发数据必须重新监听,为什么

android如何在另一个方法里面调用ExpandableListView的监听方法

问题描述 android如何在另一个方法里面调用ExpandableListView的监听方法 我想在别的地方(比如button的click监听方法里面) 来控制listView的一级子菜单的收缩和展开,一级二级子菜单的选定. 新人报道 ,求大神... 解决方案 这是动态监听expandableListView的高度,你可以参考下. 在button的click中监听,可以吧ListView的点击事件提出来写,在button的click中调用 setListViewHeightBasedOnChi

在Android中实现Service动态更新UI界面(Service与主程序Activity之间的数据交互或控制)

案例:通过service向远程服务器发送请求,根据服务器返回的结果动态更新主程序UI界面,主程序可实时关闭或重启服务. 方案一:使用广播+Service 注册BroadcastReceiver 1.在主程序activity中注册一个BroadcastReceiver,用于接收Service发布的广播. @Override protected void onStart() {//重写onStart方法 dataReceiver = new DataReceiver(); IntentFilter

c#异步读取数据库与异步更新ui的代码实现

 这篇文章主要介绍了c#从数据库里取得数据并异步更新ui的方法,大家参考使用吧 异步读取数据库,在数据绑定的时候会出现点问题,就是窗体界面会无法关闭,要结束任务才能结束进程.例如下面代码   首先按习惯的方法,设定线程更新UI   a2.CheckForIllegalCrossThreadCalls = false;  //a2为窗体名称   下面的代码就是从数据库里取得数据并绑定     代码如下: private void button1_Click(object sender, Event

Android Service和广播联合更新UI的例子

在Android中,异步更新UI,通常我们会选用Handler启动线程,或者sendMessage的方式,那么利用Service和广播也可以更新UI的,例子如下:我们建立一个Service: package com.andy import android.app.Service;//引入相关包 import android.content.BroadcastReceiver;//引入相关包 import android.content.Context;//引入相关包 import android

Android使用Handler和Message更新UI

在Android中,在非主线程中更新UI控件是不安全的,app在运行时会直接Crash,所以当我们需要在非主线程中更新UI控件,那么就需要用到Handler和Message来实现 Demo中,使用到一个按钮和一个TextView,点击按钮之后改变TextView的内容,按钮点击时候新建一个进程,在进程中对UI控件进行修改. public class MainActivity extends Activity implements OnClickListener { private static