CountdownTimer: Как перезапустить с оставшегося времени, когда пользователь возвращается к предыдущему действию? - PullRequest
0 голосов
/ 01 марта 2019

Я новичок в Android, и это может быть очень простой вопрос.Я пытаюсь создать CountDownTimer, который ведет отсчет между двумя действиями.Пользователи могут перейти к действию B и вернуться к заданию A из занятия B. И я думаю сохранить оставшееся время в SharedPreferences.Что я хочу знать, так это когда пользователь делает OnBackPressed и сохраняет текущее оставшееся время в SharedPreferences и возвращается к предыдущему действию. Как я могу перезапустить таймер обратного отсчета с оставшегося времени в предыдущем действии?

Ответы [ 2 ]

0 голосов
/ 01 марта 2019

Чтобы получить это, у вас должна быть отдельная нить для расчета отсчета времени, и она будет работать в любую погоду, в которой вы находитесь на занятии 1 или другом занятии.И этот поток должен обновить активность (Проверьте, видна ли активность).Обновить активность можно различными способами.

  1. Вы можете использовать поток и обновлять активность через широковещательную рассылку.
  2. Вы можете использовать поток и проверить видимость активности, если она видна, сделайте вещи соответствующим образом.
  3. Поскольку вы уже используете общие предпочтения , вы также можете достичь того же с помощью общих предпочтений.Вы можете использовать поток / сервис и обновлять общий доступ на каждом тике или каждую секунду.И когда вы получаете onResume , отзовитесь от действия.верните значение из разделяемое предпочтение и используйте его соответствующим образом.

Надеюсь, это поможет вам.

0 голосов
/ 01 марта 2019

Я думаю, что этот метод должен вам помочь:

@Override
public void onResume() { // This will be trigger when your activity is created or come to front
    // Load preference
    // Start timer
}

@Override
public void onStop() { // This will be triggered when your activity goes behind or before your activity destroyed.
   // Cancel timer
   // Save preference
}

Это действительно просто, просто следуйте комментариям.Дайте мне знать, если это поможет

...