/** 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<TaskReceiveRspJson> ) 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捐助),没钱捧个人场,谢谢各位。
谢谢您的赞助,我会做的更好!