Я работаю над приложением, ориентированным на Api 19, и это в основном скетч Processing.
Проблема, с которой я столкнулся, заключается в том, что при первом запуске моего приложения сразу после его установки оно работает хорошо, пока пользователь не отправит его в фоновый режим. Затем, если они снова нажмут на значок приложения, будет вызвана функция onCreate (), но действие не будет уничтожено или перезапущено. Некоторые переменные меняются, что приводит к странному поведению.
Это происходит ТОЛЬКО при первом использовании приложения. После принудительного закрытия такое поведение больше не повторится (насколько я тестировал). И этого не происходит и при запуске приложения из Eclipse.
Подводя итог, вот что происходит после первого принудительного закрытия (и что я считаю правильным):
Активность запущена.
Действия отправляются на задний план с помощью кнопки "Домой"
onPause ()
Снова нажимаем на иконку приложения
onResume ()
И вот что происходит ТОЛЬКО при первом запуске приложения после установки:
Активность запущена.
Действия отправляются на задний план с помощью кнопки "Домой"
onPause ()
Снова нажимаем на иконку приложения
onCreate () ‹- !! примечание нет onDestroy ()
onResume ()
Интересно, имеет ли к этому какое-либо отношение тот факт, что я использую иммерсивный режим, но изменение целевой версии Api на 10, удаление иммерсивного режима или тестирование на старых устройствах не помогают. Я, конечно, использовал android: configChanges = "Ориентация | keyboardHidden | screenSize" в моем манифесте.
Кто-нибудь знает, что может быть причиной этого? Это обычная проблема или мне следует искать ошибку в моем коде? Может быть ошибка обработки?
Заранее благодарим за любую подсказку. Я надеюсь, что это правильный способ задать вопрос по этому поводу. Это мой первый пост.
Обновление: Мое объяснение не очень точное, но, по-видимому, для этого есть отчет об ошибке. Проблема гораздо лучше объясняется здесь: https://code.google.com/p/android/issues/detail?id=26658
К сожалению, я не могу заставить предложенные решения работать, использование этого в onCreate () приводит к закрытию или сбою моего приложения:
if (!isTaskRoot()) {
finish();
return;
}
onSaveInstanceState()
, а затем снова восстановив его вonCreate()
. Однако действие по-прежнему остается в памяти, поэтому экземпляр Activity существует намного дольше. - person Floris   schedule 28.02.2014