Androidで定期的に処理を実行する

今回はアプリが起動している時のみ定期的に処理を実行したいので、Lifecycle.Event.ON_START のタイミングで処理を開始する。
下記のような感じ。

public class Xxxx implements LifecycleObserver {

    private final Handler handler = new Handler();
    private Runnable runnable;

    @OnLifecycleEvent(Lifecycle.Event.ON_START)
    public void onAppStart() {
        runnable = new Runnable() {
            @Override
            public void run() {
                // do something.

                // 3秒ごとに実行
                handler.postDelayed(this, 3000);
            }
        };
        handler.post(runnable);

    }

    @OnLifecycleEvent(Lifecycle.Event.ON_STOP)
    public void onAppStop() {
        handler.removeCallbacks(runnable);
    }

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

CAPTCHA