延迟处理几种方式

方式一:子线程+睡眠

new Thread(new Runnable(){   
    public void run(){   
        Thread.sleep(XXXX);   
        handler.sendMessage(); //告诉主线程执行任务   
    }   
}).start ();

实践:

new Thread(new Runnable() {
    public void run() {
        try {
            Thread.sleep(200);
        } catch (InterruptedException e) {
            e.printStackTrace();
        }
        ((Activity) mContext).runOnUiThread(new Runnable() {
            @Override
            public void run() {
                v_jack_up.setVisibility(isShow == true ? View.VISIBLE : View.GONE);
            }
        });
    }
}).start();

方式二:定时器方式

TimerTask task = new TimerTask(){   
    public void run(){   
    //execute the task 
    }   
};   


Timer timer = new Timer(); 
timer.schedule(task, delay); 
new Handler().postDelayed(new Runnable(){   
    public void run() {   
    //execute the task   主线程,可直接刷新ui
    }   
 }, delay); 

补充:new Handler().sendEmptyMessageDelayed() 需要把处理的逻辑发送到在handle的handlemessage方法处理

注意:Handler引入的类要正确,不然方法显示奇怪

 

方式三:利用AlarmManager,特点时刻广播指定意图 能实现,一般的简单任务不这么做。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值