Intereting Posts
OpenCV: обнаружение круговых пятен / дисков Dominoes Предотвращение закрытия некоторых пользователей Android Как показать пользовательский палец при использовании функции fastScrollEnabled Android Studio – SDK устарел или отсутствует шаблоны Как сделать телефонный звонок в android и вернуться к моей активности, когда звонок будет завершен? Аутентификация, требуемая для опубликованного приложения Google Play Как удалить строку заголовка в Android? Перенаправить пользователей в магазин приложений iTunes или в Google Play Store? Сотовый ActionBar Название Shadow Как программно определить, какой формат XML используют мои приложения для Android? View.inflate vs LayoutInflater Ссылка на элемент списка ListView Нажмите состояние строки с кнопкой внутри элемента списка. Анимация по обнаружению объектов для Android Ошибка IntentService для Android IntellService Включить / отключить масштабирование в Android WebView

Жизненный цикл активности Android в Jelly Bean

Я разрабатываю приложение уже несколько месяцев и готовлюсь к выпуску. Я использую Motorola Xoom с Android 4.0.4 для тестирования на протяжении всего процесса, и все работает безотказно. Я купил Nexus 7 у Google (работает Jelly Bean 4.1), и теперь у меня возникают всевозможные проблемы с жизненным циклом активности, когда устройство спит или выключается.

Я создал новый проект с единственной целью проверки жизненного цикла, и это результаты, которые я придумал. Следующий код является примером того, что я сделал в каждом из методов жизненного цикла.

@Override protected void onPause() { Log.i("TEST", "onPause()"); super.onPause(); } 

Результаты Xoom (ожидаемые результаты)

 ---------- Program Launch ------------- onCreate(null) onStart() onResume() ---------- Turn Off Screen ------------ onPause() onSaveInstanceState(not null) onStop() ---------- Turn Screen On ------------- onReStart() onRestoreInstanceState(not null) onResume() 

Результаты Nexus 7 (неожиданные результаты)

 ---------- Program Launch ------------- onCreate(null) onStart() onResume() ---------- Turn Off Screen ------------ onPause() onSaveInstanceState(not null) onStop() onDestroy() onCreate(not null) onStart() onRestoreInstanceState(not null) onResume() onPause() ---------- Turn Screen On ------------- OnResume() onPause() onSaveInstanceState(not null) onStop() onDestroy() onCreate(not null) onStart() onRestoreInstanceState(not null) onResume() 

Опять же, эти результаты взяты из совершенно нового проекта без каких-либо изменений кода, кроме операторов Log в каждом из методов. Почему так много дополнительных, ненужных вызовов методов, когда Nexus 7 отключается и возвращается? Кажется, это полностью разрушает приложение, а затем воссоздает.

Для полноты использования, когда вы используете домашнюю кнопку, а затем возобновляете приложение, жизненный цикл, похоже, согласован между устройствами.

Заранее благодарю за любую помощь. Wayne

Solutions Collecting From Web of "Жизненный цикл активности Android в Jelly Bean"

Похоже, что ваша активность воссоздана в рассматриваемых сценариях. Обычно это происходит, когда в системе происходит изменение конфигурации . Ваша деятельность воссоздана и перезапущена по умолчанию, если вы явно не решите самостоятельно изменить конфигурацию. Вы должны проверить этот список , одно из этих изменений может произойти при включении / выключении экрана (так как вы уверены, что не вращаете устройство одновременно).

О изменениях конфигурации вы можете прочитать на этой официальной странице .

Jelly Bean 4.1 – Nexus 7 имеет один вариант на этом пути:

Настройки -> Параметры разработчика -> Не выполнять действия …

Этот параметр уничтожит все действия, которые идут в фоновом режиме. Поэтому, когда Android меняет статус на «спящий» и «пробуждается», ваша деятельность уничтожается и воссоздается.