-1

What can I do to create buttons of start and stop for this function?

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

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

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

Thanks

Henry
  • 17,490
  • 7
  • 63
  • 98

1 Answers1

1

You could add a flag to check for start/stop status before posting to the handler again. Note: This isn't how I would do it though, I would use a 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);
}
Andrew Roth
  • 1,063
  • 10
  • 18