zoukankan      html  css  js  c++  java
  • Handler用法

    handler :更新UI的机制,消息的处理机制

    四种用法sendMessage、sendMessageDelayed、post(runnable)、postDelayed(Runnable,long)

    post用法

        private android.os.Handler handler = new android.os.Handler();
    
        new Thread() {
                public void run() {
                    try {
                        Thread.sleep(1000);
                        handler.post(new Runnable() {
                            @Override
                            public void run() {
                                text.setText("123");
                            }
                        });
                    } catch (InterruptedException e) {
                        e.printStackTrace();
                    }
                }
            }.start();
    

    sendMessage用法

        private android.os.Handler handler = new android.os.Handler() {
            @Override
            public void handleMessage(Message msg) {
                text.setText("" + msg.arg1);
            }
        };
    
       new Thread() {
                @Override
                public void run() {
                    try {
                        Thread.sleep(1000);
                        Message message = new Message();
                        message.arg1 = 100;
                //handler.sendMessage(XXX);对象可以是int,也可以是obj对象
                //message.obj=Person; Person是一个实体类对象 handler.sendMessage(message); } catch (InterruptedException e) { e.printStackTrace(); } } }.start();


    加上一个自己写的页面自动滑动的demo , 不是最正确的,只是可以用的。

        private Handler handler = new Handler() {
            @Override
            public void handleMessage(Message msg) {
                switch (msg.what) {
                    case 1:
                        textView.setText("11111");
                        break;
                    case 2:
                        textView.setText("22222");
                        break;
                    default:
                        textView.setText("33333");
                        break;
                }
            }
        };
    
            button1.setOnClickListener(new View.OnClickListener() {
                @Override
                public void onClick(View v) {
                    new Thread() {
                        @Override
                        public void run() {
                            for (int i = 1; i < 10000; i++) {
                                try {
                                    Message message = new Message();
                                    message.what = i % 3;
                                    handler.sendMessageDelayed(message, 1000);
                                    sleep(1000);
                                } catch (Exception e) {
                                    e.printStackTrace();
                                }
                            }
                        }
                    }.start();
                }
            });
    
  • 相关阅读:
    链表中倒数第K个结点
    关于栈的经典问题---判断一个栈的出栈序列是不是有效的
    剑指Offer-用两个栈实现队列
    Netty与NIO
    牛客-反转数字
    N叉树的最大深度-DFS
    version can neither be null, empty nor blank
    剑指 Offer 16. 数值的整数次方
    Vue基础语法与指令
    ES6常用语法
  • 原文地址:https://www.cnblogs.com/lyxin/p/5731259.html
Copyright © 2011-2022 走看看