int time = 120;
handler.postDelayed(new Runnable() {
@Override
public void run() {
tv_record_time.setText(time + "s");
time--;
if (time == 0) {
tv_record_time.setText(time + "s");
rl_bottom.setVisibility(View.VISIBLE);
ll_after_unlock_bottom.setVisibility(View.GONE);
initcorder();
handler.removeCallbacks(this);
} else if (time > 0) {
tv_record_time.setText(time + "s");
handler.postDelayed(this, 1000);
}
}
}, 1000);
项目中用到了这样的方法,发现有时候handler的循环很好用,
方法postDelayed的作用是延迟多少毫秒后开始运行,而removeCallbacks方法是删除指定的Runnable对象,使线程对象停止运行。