Android中Handler的用法
版权声明:
本文为博主原创文章,转载请声明原文链接...谢谢。o_0。
更新时间:
2018-04-12 12:08:59
温馨提示:
学无止境,技术类文章有它的时效性,请留意文章更新时间,如发现内容有误请留言指出,防止别人"踩坑",我会及时更新文章
说明啦handler可以处理一些消息,这些消息是可以带数据的,类似win32系统编程中的消息一样如下
先在Activity中定义一个handler,里面实现啦一个显示 消息框的功能,为啥要在这实现呢。因为程序里使用啦多线程,线程中要输出一些消息提示,然而直接在线程中弹消息框会异常,所以就用这些方式,发一个消息出来实现消息框
@SuppressLint("HandlerLeak")
public Handler handler=new Handler(){
@Override
public void handleMessage(Message msg) {
int what=msg.what;
switch (what) {
case 1:
Bundle bundle=(Bundle)msg.getData();
Toast.makeText(MainActivity.this,bundle.getString("msg"),Toast.LENGTH_SHORT).show();
break;
default:
break;
}
super.handleMessage(msg);
}
};在需要弹消息框的地方就发出一个消息,上面会接收到,然后解析显示
//发送消息
Message msg = new Message();
//定义消息类型
msg.what=1;
//在消息里填充一些数据
Bundle bundle = new Bundle();
bundle.putString("msg", str);
msg.setData(bundle);
// 把消息发送到主线程
handler.sendMessage(msg);也可以实现更复杂的功能,定义一些消息常量,来区分消息类型然后进行相应的处理