2010-06-25 8 views
0

Я пишу таймер обратного отсчета, используя .postdelayed(), который говорит каждую секунду, когда таймер опускается до нуля. У меня проблемы с пониманием последствий нажатия пользователем кнопки «Назад» или «Дом». Обратный отсчет продолжается при нажатии любой кнопки. Когда домашний нажат, и вы отбираете приложение, оно возвращается к тому же счету (это то, что я всегда хочу), и продолжает отсчитывать. Когда вы нажимаете на кнопку «назад», а затем отбрасываете приложение, вы получаете новые часы, которые не запускались, но я все еще здесь звуки от оригинального таймера. Как я могу закодировать приложение, так что он может иметь только один экземпляр, а значок приложения всегда будет работать в активной версии, если он запущен?счетчик обратного хода андроид-затвора против дома

ответ

0

Взгляните this Question ... это в основном то, что вам нужно. Теперь ... если вы задаетесь вопросом об этом поведении, просто при нажатии кнопки Home ваше приложение не будет уничтожено, но приостановлено. Но когда вы нажимаете кнопку Back, текущая активность выталкивается из стека, а это значит, что ваше приложение уничтожено (так что вам лучше сохранить состояние вашего приложения).

+0

Спасибо Кристиану, я понимаю, что мне нужно будет сохранить состояние приложения, и что если приложение будет уничтожено, я смогу снова открыть приложение и сбросить состояние. Хотя приложение не было уничтожено достаточно хорошо. Я все еще могу слышать стрелки коротких файлов .mp3, и это означает, что обработчик обработанных часов все еще идет и устанавливает новые postdelayed() s. Если я ударил значок приложения и восстановил состояние, я все еще чувствую, что есть два экземпляра таймера. Могу ли я поймать уничтожение в коде? –

+0

Конечно ... вы можете реализовать метод 'onDestroy' в своей деятельности, сохранить состояние и убить поток, который говорит. – Cristian

+0

отличная! Спасибо. –