开发中常用几种实现定时器的效果(含例子)

需求
项目要的功能是 点赞 不可以取消 只要点了就在图标上角+1 且在一定时间后自动消失!考虑到简单直接用
HandlerpostDelayed()方法!
推荐Handler

Handler handler = new Handler();
handler.postDelayed(new Runnable() {             
    @Override
    public void run() {
        mTvCommentNumber.setVisibility(View.GONE);mTvCommentNumber//是我要隐藏的TextView
    }
}, 1500);  //1.5秒后执行

使用lambda表达式 更简洁 代码如下

new Handler().postDelayed(() -> {
                        mTvCommentNumber.setVisibility(View.GONE);
                    }, 1500);

还有2种 接触到的定时器 分别是Thread+Timer 用了Hanlder 觉得最简单 2句代码解决!

timer定时器

Timer timer = new Timer();
timer.schedule(new TimerTask() {
    @Override
    public void run() {
      //Do Something 
    }
}, delay, period);//delay:从定时器初始化成功 开始启动 的延迟时间。 period:延迟多久执行这个定时器

private void stopTimer(){
    if(timer != null){
        timer.cancle();//取消定时器        
        timer = null;// 设置为null,回收定时器
    }
}

Thread 线程
直接在用到的地方 new Thread 然后new Runnable 最后sleep休眠时间 即可

new Thread(new Runnable() {
    @Override
    public void run() {
       while(true)
        {
            try {
                Thread.sleep(1000);//休眠时间
                //在这里执行需要的操作 
                return;
            } catch (InterruptedException e) {                
                e.printStackTrace();
            }          
         }
    }
}).start();

猜你喜欢

转载自blog.csdn.net/life_s/article/details/80902391