Android 开发之Handler+Thread开发

我们在Android开发中,像Handler+Thread用的很多,虽然写起来麻烦,但我感觉还是有必要写一下  温故而知新!

首先,我先上代码:

  @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        //启动线程
        new Thread(r).start();
    }

    private Handler handler = new Handler() {
        @Override
        public void handleMessage(Message msg) {
            super.handleMessage(msg);
            switch (msg.what) {
                case 1:
                    /**
                     * 界面Ui操作
                     */
                    break;
            }

        }
    };

    Runnable r = new Runnable() {
        @Override
        public void run() {
            //耗时操作
            Message msg = Message.obtain();
            //类似于ID或Tag或者说是标签
            msg.what = 1;
            //obj  你懂得
            msg.obj = "";

            handler.sendMessage(msg);

        }
    };

Handler是怎么用的?Thread又是怎么用的?

整体思路:handler是处理消息的,Thread是处理耗时操作的,  就拿登入来说,我们要登入,第一步网络请求,耗时操作,所以我们就得启动一个线程来网络请求数据,第二步,我们现在处于线程中吧,但是要界面更新,界面更新只能在主线程中写,所以我们要通过发送消息来把界面要的东西带出去,因此我们得新建Handler 用handleMessage()来根据ID标签识别,然后把接收到的信息,设置到界面上去。(也就是 Thread-->sendMessage--->handleMessage))

新建message  建议使用 Message msg=Message.obtain();

msg.what 相当于 ID标签

msg.obj 相当于传输的数据包 是obj类型

handler.postDelay()    延迟操作。




评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值