欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

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); //启动线程
        
    }