0
私はアンドロイドプログラミングには慣れていて、アプリがフォーカスを取り戻した後、アンドロイドアプリでカウントダウンタイマーを再開しようとしています。ユーザーがアプリケーションに戻ったときに再開するタイマーの現在の状態の保存されたインスタンスを取得するにはどうすればよいですか?ここでカウントダウンタイマーを再開するandroid
が私のコードです:以下に示すように
private long resume_timer;
MainActivity.CounterClass count_timer;
TextView timer;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_advanced);
count_timer = new MainActivity.CounterClass(180000, 1000);
count_timer.start();
public class CounterClass extends CountDownTimer {
public CounterClass(long millisInFuture, long countDownInterval) {
super(millisInFuture, countDownInterval);
// TODO Auto-generated constructor stub
}
@Override
public void onTick(long millisUntilFinished) {
// TODO Auto-generated method stub
resume_timer = millisUntilFinished;
long millis = millisUntilFinished;
String hms = String.format(Locale.getDefault(),
"%02d:%02d:%02d",
TimeUnit.MILLISECONDS.toHours(millis),
TimeUnit.MILLISECONDS.toMinutes(millis)
- TimeUnit.HOURS.toMinutes(TimeUnit.MILLISECONDS
.toHours(millis)),
TimeUnit.MILLISECONDS.toSeconds(millis)
- TimeUnit.MINUTES.toSeconds(TimeUnit.MILLISECONDS
.toMinutes(millis)));
timer.setText(hms);
}
@Override
public void onFinish() {
timer.setText("time's up!!");
}
@Override
protected void onPause() {
count_timer.cancel();
super.onPause();
}
@Override
protected void onResume() {
// how do i resume timer here? this logic dot work.
count_timer = new MainActivity.CounterClass(resume_timer, 1000);
count_timer.start();
super.onResume();
}