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);
也可以实现更复杂的功能,定义一些消息常量,来区分消息类型然后进行相应的处理