如何停止并开始postDelayed?

问题描述 投票:-1回答:1

如何为此功能创建启动和停止按钮?

final Handler ha=new Handler();
ha.postDelayed(new Runnable() {

    @Override
    public void run() {
        //call function

        ha.postDelayed(this, 10000);
    }
}, 10000);

谢谢

java android
1个回答
1
投票

您可以添加一个标志来检查启动/停止状态,然后再次发布到处理程序。注意:这不是我会怎么做的,我会使用ScheduledExecutorService

private boolean isRunning = false;
private Handler ha = new Handler();

private void start() {
    isRunning = true;
    ha.postDelayed(new Runnable() {

        @Override
        public void run() {
            //call function

            if (isRunning) {
                ha.postDelayed(this, 10000);
            }
        }
    }, 10000);
}

private void stop() {
    isRunning = false;
    ha.removeCallbacksAndMessages(null);
}
© www.soinside.com 2019 - 2024. All rights reserved.