美文网首页
初识Handler - 基本用法,只说怎么用,不看原理

初识Handler - 基本用法,只说怎么用,不看原理

作者: 蒙多喝醉了 | 来源:发表于2020-07-01 20:48 被阅读0次

    目录:

    • 基本用法
    • 传值处理
    • 定时处理

    本文只看用法,不说其他。

    一、基本用法

    1、定义Handler

        android.os.Handler handler = new Handler() {
            @Override
            public void handleMessage(final Message msg) {
                //这里接受并处理消息
            }
        };
    

    2、传递消息,等待处理

    //发送消息
    handler.sendMessage(message);
    handler.post(runnable);
    

    二、传值多处理

    1、定义,并写入处理事项

        private Handler mHandler = new Handler() {
            public void handleMessage(Message msg) {
                switch (msg.what) {
                    case 200:
                        //获取传过来的值
                        int delay = msg.getData().getInt("delay");
                        String dog = msg.getData().getString("dog");
                        //处理关于UI的事项
                        //。。。
                        break;
                    default:
                        break;
                }
            };
        };
    

    2、传值

            Message message = new Message();
            message.what = 200;
            //传值,可以传入不同类型,这里只简单示例
            Bundle bundle = new Bundle();
            bundle.putInt("delay", 123);
            bundle.putString("dog","dog");
            message.setData(bundle);
            mHandler.sendMessage(message);
    

    三、定时处理

    1、用法1:

    new Handler().postDelayed(new Runnable() {
        @Override
        public void run() {
            //执行代码
    
            }
        }, 10000);
    

    2、用法2:

    //创建一个Handler对象
    Handler mHandler = new Handler();
    //然后创建一个Runnable对象
    Runnable runnable = new Runnable(){
            @Override
            public void run() {
                mHandler.postDelayed(this, 2000);
                //两秒后你要做的事情,在这里实现:
                //你要吃饭???
                //你要干啥
                
            }
        };
    
    
    //在你需要的地方,使用PostDelayed方法,两秒后将调用此Runnable对象。
    mHandler.postDelayed(runnable, 2000);
    
    
    //关闭此定时器
    mHandler.removeCallbacks(runnable);
    

    相关文章

      网友评论

          本文标题:初识Handler - 基本用法,只说怎么用,不看原理

          本文链接:https://www.haomeiwen.com/subject/slzhqktx.html