- 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();
- }
- //-----------------------------------------------------------------
- }