android handle ui 更新
16lz
2022-04-03
阅读更多
/** handler更新数据标志 */ protected static final int MSG_UPDATE_DATA = 2; protected static final int MSG_INSERT_DB = 0;
public void downloadData() { updateUIThread( MSG_UPDATE_DATA ); mListView.refreshSelf(); }
public void updateUIThread( final int type ) { new Thread( new Runnable() { @Override public void run() { mUIhandler.sendEmptyMessage( type ); } } ).start(); }
/** 刷新UI handler */ private Handler mUIhandler = new Handler() { public void handleMessage( android.os.Message msg ) {switch ( msg.what ) { case MSG_UPDATE_DATA:updateListView( ( List) TaskDbManager .getData( TaskDbManager.TABLE_TASK_RECEIVE, mQueryByState ) );break; default: break;} };};
handler 处理方法
消息处理代码: private Handler handler = new Handler() { public void handleMessage(Message msg) { switch (msg.what) { case 1 : bt.setText("正在下载..."); break; case 2 : Bitmap bm = (Bitmap) msg.obj; iv.setImageBitmap(bm); break; case 3 : Bundle bundle = msg.getData(); String data = bundle.getString("text"); bt.setText(data); break; } }};消息发送代码:方式一:示例1: Message.obtain(handler,1).sendToTarget();示例2: Bitmap bm = NetUtil.downloadNewImg(); Message.obtain(handler, 2, bm).sendToTarget();示例3: // 这条消息,不携带数据,而是携带一段代码, 主线程处理这条消息时,会执行它携带的代码,而不执行其他代码Message.obtain(handler, new Runnable() { public void run() { bt.setText("下载内涵图"); }}).sendToTarget();方式二:示例1: handler.obtainMessage(1).sendToTarget();示例2: Bitmap bm = NetUtil.downloadNewImg(); handler.obtainMessage(2, bm).sendToTarget(); 方式三:示例1: Message msg = new Message(); msg.what =1; handler.sendMessage(msg);示例2: Message msg = new Message(); msg.what =2; msg.obj = bm; handler.sendMessage(msg);示例3: Message msg = new Message(); Bundle data = new Bundle(); data.putString("text", "正在下载..."); msg.what = 3; msg.setData(data); handler.sendMessage(msg);示例4:// 创建一个携带代码的消息对象,并发送给主线程执行handler.post(new Runnable() { public void run() { // 在主线程中,处理消息时执行 Toast.makeText( MainActivity.this, "下载结束", Toast.LENGTH_SHORT).show(); }});
捐助开发者
在兴趣的驱动下,写一个免费
的东西,有欣喜,也还有汗水,希望你喜欢我的作品,同时也能支持一下。 当然,有钱捧个钱场(右上角的爱心标志,支持支付宝和PayPal捐助),没钱捧个人场,谢谢各位。
谢谢您的赞助,我会做的更好!
更多相关文章
- 【Android】抽屉控件 SlidingDrawer 的简单示例
- android 实现流媒体播放远程mp3文件代码
- Android(安卓)ToggleButton控件的用法
- Android——简单对话框
- Android(安卓)Robotium的自动化代码
- android延时更新UI
- Android(安卓)列表之分组ListView
- android 定时发送短信
- Android(安卓)代码中实现返回键功能