#android
#Android
Вопрос:
У меня есть счетчик в моем действии A, и по его завершении я должен выполнить некоторые действия. Проблема в том, что счетчик сбрасывается, когда я перехожу к другому действию, а затем возвращаюсь к этому действию A, чего не должно происходить. Почему это так?
Мой класс счетчика:
private class Counter extends CountDownTimer {
public Counter(long millisInFuture, long countDownInterval) {
super(millisInFuture, countDownInterval);
}
public void onFinish() {
//perform some actions
}
public void onTick(long millisUntilFinished) {
int minute = (int) (millisUntilFinished / (1000 * 60));
int sec = (int) ((millisUntilFinished - (minute * 60 * 1000)) / 1000);
minuteText.setText("" minute);
secondText.setText("" sec);
}
}
}
Я вызываю свой счетчик в onCreate()
как:
new Counter(countdowntime * 60 * 1000), 1000).start();
Как решить эту проблему? Пожалуйста, ответьте. Заранее спасибо.
Комментарии:
1. У меня нет опыта работы с этим классом. Если вы сохраняете состояние таймера в двух представлениях EditText. Используя стандартные методы, состояние этих полей должно сохраняться даже при изменении ориентации, чтобы вы могли повторно инициализировать счетчик в ?onCreate, используя состояние, сохраненное в этих представлениях. Более чистым решением может быть запись оставшегося времени в пакет в onSaveInstanceState и чтение пакета в onCreate
Ответ №1:
Вероятно, вам следует запустить свой счетчик в onResume
вместо в onCreate
и приостановить счетчик в onPause
(или вы могли бы завершить счетчик, если isFinishing()
возвращает true
значение в onPause
).
Ответ №2:
У меня это сработало…Проблема заключалась в том, что я использовал activity stack…при вызове намерения мы должны указать для него идентификатор, чтобы он однозначно идентифицировал каждое намерение. Когда я дал это, это сработало.