package com.example.nemophila.viewmodels; import com.example.nemophila.Nemophila; import java.util.concurrent.ScheduledThreadPoolExecutor; import java.util.concurrent.TimeUnit; import androidx.lifecycle.ViewModel; abstract class TimerViewModel extends ViewModel implements Runnable { private ScheduledThreadPoolExecutor thread = null; protected Nemophila nemophila; //----------------------------------------------------------------- // 一定間隔で呼び出す @Override public void run() { update(); } public abstract void update(); //----------------------------------------------------------------- //何ミリ秒ごとにrun()を実行するかを決める public void start(int interval, Nemophila nemophila) { this.nemophila = nemophila; thread = new ScheduledThreadPoolExecutor(1); thread.scheduleWithFixedDelay(this, interval, 1000L, TimeUnit.MILLISECONDS); } //----------------------------------------------------------------- // public void stop() { thread.shutdown(); } //----------------------------------------------------------------- }