2つのアクション(例:startActionとendAction)の間の経過時間を追跡したいアクティビティがあります。次のコードを使用して、ユーザーがstartActionのボタンを押してから500ミリ秒ごとに増分するタイマーを実装しました。
TextView dayTimer = (TextView)findViewById(R.id.tvDayTimer);
long startTime;
class DayTimer extends TimerTask {
@Override
public void run() {
BBCAndroid.this.runOnUiThread(new Runnable() {
public void run() {
long millis = SystemClock.elapsedRealtime() - startTime;
int seconds = (int) (millis / 1000);
int minutes = seconds / 60;
seconds = seconds % 60;
dayTimer.setText(String.format("%d:%02d", minutes, seconds));
}
});
}
};
startDayButton.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
// TODO Auto-generated method stub
startTime = SystemClock.elapsedRealtime();
timer.schedule(new DayTimer(), 0,500);
LoginResult.DayState = 1;
startDayButton.setEnabled(false);
endDayButton.setEnabled(true);
}
});
今私の問題は、アプリケーションを終了するとタイマーが停止することです。ユーザーがアプリを使用していないときでもタイマーを実行するにはどうすればよいですか?要約すると、アプリが閉じていてもカウントするタイマーが必要です。