Android间隔定时循环执行函数N次后结束功能实现分析
程序员文章站
2022-06-09 13:32:00
...
Android的这个定时循环执行任务按道理来说十分常用,但是很多人写的让我看不懂,或者用起来不顺手。这里我给出实际代码,供大家参考吧。我们要注意的是,postDelayed并不是设置循环任务的作用,它只是定时作用,和定时器TimerTask不同,TimerTask才是循环执行。
这里只是利用线程内延时再次执行,构造出了循环的效果。
private void testGpio(){
Toast.makeText(context,"开始执行",Toast.LENGTH_LONG).show();
handler = new Handler();
Runnable runnable = new Runnable() {
@Override
public void run() {
Log.i(TAG, "run: counter = "+ counter);
if( counter % 2 == 0 )
setGpioUp();
else
setGpioDown();
counter++;
//设置延时5s再运行一次线程,构成了循环的效果
handler.postDelayed(this,5000);
if(counter > 4){
Log.i(TAG, "run: counter > 4 ? = "+ counter);
handler.removeCallbacks(this);
}
}
};
handler.post(runnable); //启动线程
}