Android实现界面实时更新
利用的是Cursor+CursorAdapter实现界面实时更新的方法
部分代码如下:
//一个观察者
private class MyContentObserver extends ContentObserver {
public MyContentObserver() {
super(new Handler());
}
@Override
public void onChange(boolean selfChange) {
super.onChange(selfChange);
Log.i("DLA", "MyContentObserver onChange!");
//处理数据更新回调
refreshData();
}
}
private void refreshData() {
if (mCursor.isClosed()) {
return;
}
//更新
mCursor.requery();
}
//一个实现CursorAdapter的适配器
private MyAdapter mAdapter;
private Cursor mCursor;
private MyContentObserver mObserver;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.list);
setupViews();
mCursor = getContentResolver().query(MyProvider.CONTENT_URI, sAppReadableColumnsArray,null, null, null);
mObserver = new MyContentObserver();
//注册观察者
mCursor.registerContentObserver(mObserver);
mAdapter = new MyAdapter(this, R.layout.list_item, mCursor);
setListAdapter(mAdapter);
}
@Override
protected void onDestroy() {
super.onDestroy();
if (mCursor != null) {
mCursor.unregisterContentObserver(mObserver);
mCursor.close();
}
}
这样实现后当MyProvider.CONTENT_URI对应的数据发生变化时都会调用观察者的onChange方法,mCursor.requery()执行后listview就直接更新了。
提示:支持键盘“← →”键翻页 阅读全文
Android开发实例 简单拨打电话
Android开发中是否连上网络检测方法
Android开发教程 录制多媒体实例
Android开发教程 传感器实例
相关推荐
评论