Android中Handler的用法

来源:赵克立博客 分类: Android 标签:Android发布时间:2018-04-12 12:03:06最后更新:2018-04-12 12:08:59浏览:1632
版权声明:
本文为博主原创文章,转载请声明原文链接...谢谢。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);

也可以实现更复杂的功能,定义一些消息常量,来区分消息类型然后进行相应的处理


微信号:kelicom QQ群:215861553 紧急求助须知
Win32/PHP/JS/Android/Python