凌雪
2018-08-29
来源 :网络
阅读 1334
评论 0
摘要:本文将带你了解Android应用开发之android handle ui 更新,希望本文对大家学Android有所帮助
本文将带你了解Android应用开发之android handle ui 更新,希望本文对大家学Android有所帮助
Java代码 /** handler更新数据标志 */ protected static final int MSG_UPDATE_DATA = 2; protected static final int MSG_INSERT_DB = 0; /** handler更新数据标志 */
protected static final int MSG_UPDATE_DATA = 2;
protected static final int MSG_INSERT_DB = 0;
Java代码 public void downloadData() { updateUIThread( MSG_UPDATE_DATA ); mListView.refreshSelf(); } public void downloadData() {
updateUIThread( MSG_UPDATE_DATA );
mListView.refreshSelf();
}
Java代码 public void updateUIThread( final int type ) { new Thread( new Runnable() { @Override public void run() { mUIhandler.sendEmptyMessage( type ); } } ).start(); } public void updateUIThread( final int type ) {
new Thread( new Runnable() {
@Override
public void run() {
mUIhandler.sendEmptyMessage( type );
}
} ).start();
}
Java代码 /** 刷新UI handler */ private Handler mUIhandler = new Handler() { public void handleMessage( android.os.Message msg ) { switch ( msg.what ) { case MSG_UPDATE_DATA: updateListView( ( List
private Handler mUIhandler = new Handler() {
public void handleMessage( android.os.Message msg ) {
switch ( msg.what ) {
case MSG_UPDATE_DATA:
updateListView( ( List
break;
default:
break;
}
};
};
handler 处理方法
Java代码 消息处理代码: 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(); } }); 消息处理代码:
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();
}
});
本文由职坐标整理并发布,希望对同学们有所帮助。了解更多详情请关注职坐标移动开发之Android频道!
喜欢 | 0
不喜欢 | 0
您输入的评论内容中包含违禁敏感词
我知道了

请输入正确的手机号码
请输入正确的验证码
您今天的短信下发次数太多了,明天再试试吧!
我们会在第一时间安排职业规划师联系您!
您也可以联系我们的职业规划师咨询:
版权所有 职坐标-一站式AI+学习就业服务平台 沪ICP备13042190号-4
上海海同信息科技有限公司 Copyright ©2015 www.zhizuobiao.com,All Rights Reserved.
沪公网安备 31011502005948号