1

я указал в manifest.xml следующего тегомПриложение восстанавливается, даже когда android: configChanges указан?

<activity android:screenOrientation="fullsensors 
      android:configChanges="orientation|keyboardhidden|keyboard" 
</activity> 

И android:configChanges="Orientation|keyboardhidden|keyboard" средство избежать воссоздания приложения в случае «ориентация» ИЛИ «клавиатура спрятана/видимой»

И в моем классе App, я я призываю все обратные вызовы жизненного цикла деятельности. И я ожидал, когда повернуть/переориентировать устройство, чтобы не было никакого развлечения приложения. Или, другими словами, следующие обратные вызовы, по порядку, не будут вызваны из-за android:configChanges. Обратные вызовы: onPause()onStop()onDestroy()onCreate()onStart()onResume() и каждый раз, когда я поворачиваю устройство, приложение воссоздается и вызывается обратные вызовы, упомянутые ранее в жизненном цикле.

Любое объяснение, почему это происходит?

+0

не это не нет. Если вы укажете 'android: configChanges' onConfigurationChanged, вызывается. Начиная с HoneyComb вам также нужно «screenSize» – Blackbelt

+0

@blackbelt, спасибо за ваш ответ. Если «android: configChnanges» не мешает воссозданию приложения в случае изменения ориентации, так что же его использовать? Что касается screenSize, это обратный вызов или что? – LetsamrIt

ответ

1

Здесь вы не указали screenSize в android:configChanges.

Согласно документу

Внимание: Начиная с Android 3.2 (уровень API-13), «размер экрана» также изменяется, когда устройство переключается между портретной и альбомной ориентации . Таким образом, если вы хотите предотвратить перезапуск во время изменения при разработке для уровня API 13 или выше (как , объявленного атрибутами minSdkVersion и targetSdkVersion), вы должны указать значение «screenSize» в дополнение к «ориентации», значение. То есть, вы должны decalare android: configChanges = "orientation | screenSize". Однако, если ваше приложение предназначено для уровня API 12 или ниже, то ваша деятельность всегда сама обрабатывает это изменение конфигурации (это изменение конфигурации не перезапускает вашу активность даже при работе на устройстве Android 3.2 или ).

Так что если вы хотите получить onConfigurationChanged обратный вызов .. Вы должны добавить screenSize в android:configChanges.

Для получения дополнительной информации вы можете увидеть this

+0

спасибо, теперь понятно. пожалуйста, не могли бы вы ответить на мой вопрос? – LetsamrIt