Как сохранить состояние активности на спине в андроиде?
Я новичок в Android. В соответствии с Doc для разработчиков Android, создающим режим запуска активности SingleTop, эта активность останется нетронутой. Но это не работает для меня. У меня есть Активность, где у меня есть таймер обратного отсчета, я хочу, чтобы я оставлял Активность на спине, нажимал и возвращался в Активность, чтобы таймер обратного отсчета все еще работал. Как это сделать? Пожалуйста помоги
2 ответа
Я полагаю, вы немного не поняли.
Запуск деятельности в singleTop
не означает, что действие является "неповрежденным", это означает, что если целевая задача уже имеет существующий экземпляр действия в верхней части своего стека, этот экземпляр получит новое намерение - новый экземпляр не будет создан. (Это противоположно запуску мероприятий в standard
режим, в котором каждый раз, когда появляется новое намерение, создается новый экземпляр класса для ответа на это намерение.)
Как и предполагали другие, вы можете связываться с Сервисом и обновлять отсчет времени оттуда.
"Создание службы всегда будет поддерживать этот таймер, вместо этого я хочу, чтобы он продолжал работать только тогда, когда приложение живо", это означает, что вы хотите продолжить таймер с того места, где ушел пользователь.
Сохранить значение таймера в SharedPreferences onStop()
и получить то же самое onRestart()
и, наконец, продолжить обновление