Android开启子线程睡眠的方法

 关于子线程的科普------线程管理之详解

 new Thread() {
                    @Override
                    public void run() {
                        super.run();
                        try {
                            Thread.sleep(1000);//休眠

                           //这里要写需要执行的操作

                        } catch (InterruptedException e) {
                            e.printStackTrace();
                        }
                    }
                }.start();

第二种方法:

Handler handler = new Handler(); // 如果这个handler是在UI线程中创建的
                handler.postDelayed(new Runnable() {  // 开启的runnable也会在这个handler所依附线程中运行,即主线程
                    @Override
                    public void run() {
                    
                        initBluetooth();    //这里是想要执行的操作
                       
                        // new Runnable(){},只是把Runnable对象以Message形式post到UI线程里的Looper中执行,并没有新开线程。
                    }
                }, 200); // 延时0.2s执行run内代码

 

 踩过的坑:

if (v.getId() == R.id.pop_title_change) {
               log("@@@@@@@@@@@@@@@@@@@@@@@@@@@@@2点击事件触发");
                new Thread() {
                    @Override
                    public void run() {
                        super.run();
                        try {
                            Thread.sleep(5000);//休眠
                            log("##########################点击事件进行中");
                        } catch (InterruptedException e) {
                            e.printStackTrace();
                        }
                    }
                }.start();
                log("%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%应该是最后出现才对");
            }

这里进入子线程后不影响后面继续运行,故“点击事件触发”和“应该是最后出现才对”共同运行,五秒钟后“点击事件进行中”才会打印。

而且线程运行结束会 自动终止。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值