2010-07-13 5 views
1

Я использую функцию onTick(long l) CountDownTimer для проверки некоторых условий, и если они выполнены, я вызываю функцию активности для выполнения некоторых задач, связанных с пользовательским интерфейсом. Однако мне интересно, возможно ли, что в то время как активность уничтожается и воссоздается из-за изменения ориентации, запускается onTick() и можно вызвать функцию в моей деятельности, деятельность, которая еще не может быть создана?Связанный с жизненным циклом вопрос

Если да, то какие-либо идеи о том, как это можно исправить?

ответ

0

Я бы использовал AlarmManager и BroadcastReceiver для обработки повторяющихся материалов.

Читайте также о Listening for and broadcasting global messages and setting alarms Некоторых других учебных пособий о Android AlarmManager

Но это даст вам лучшие ответы возможных, только что прочитал о alarmmanager tutorial

+0

Не могли бы вы предоставить некоторые ссылки или подробности – rantravee

0

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

Дружественное предупреждение: услуги легче убивать, чем занятия, когда устройство мало памяти (лучше удалить что-то, что пользователь может видеть, чем то, что пользователь не может видеть). Предполагая, что вы хотите, чтобы этот таймер работал с момента его создания до тех пор, пока вы его явно не убьете, тогда было бы лучше продолжать воскрешение Сервиса всякий раз, когда он будет удален операционной системой. Вы делаете это, заставляя его метод onStartCommand возвращать константу START_REDILIVER_INTENT. Хотя это не гарантирует, что Служба останется в живых на протяжении всего этого интервала, это означает, что она вернется в конце концов. Если ваше приложение не потребляет слишком много памяти, вам не стоит беспокоиться об этом. Если это так, то вам нужно будет проявить творческий подход к использованию таймера.

0

Другая идея: handle the screen orientation change yourself, чтобы предотвратить сброс приложения. Этот подход имеет свою долю негативных последствий, как указано на сайте разработчика Android:

Управление изменениями самостоятельно может затруднить использование альтернативных ресурсов, поскольку система автоматически не применяет их для вас. Этот метод следует рассматривать как последнее средство и не рекомендуется для большинства приложений.

В зависимости от вашего приложения это может быть в порядке. В любом случае, это относительно простое изменение вашего файла манифеста, поэтому вы можете дать ему шанс и посмотреть, что произойдет.

Смежные вопросы