2016-07-12 3 views

ответ

0

Когда происходят какие-либо изменения конфигурации, такие как ориентация устройства, активность будет уничтожена и воссоздана, если вы не изменили этот процесс внутри файла манифеста. Как отметил @Lazai, если вы изменили функциональные возможности изменения конфигурации, вы должны вручную загрузить все новые ресурсы, необходимые для новой ориентации, включая стили, темы, чертежи и макеты внутри обратного вызова Activity.onConfigurationChanged(Configuration newConfig).

Примечание: если вы не указали внутри файла манифеста, что вы хотели бы вручную изменить конфигурацию, вы никогда не получили бы вызовActivity.onConfigurationChanged(Configuration newConfig).

Android exports recommend not handling the configuration changes yourself and letting the OS handle itself. Итак, как узнать, когда происходят изменения ориентации, когда вы не получаете вызовы onConfigurationChanged (Configuration newConfig)? Хорошо, если вы настроены таргетинг выше API Level 11, их метод удобен для класса Activity, который указывает, имеет ли действие изменение конфигурации, которое называется Activity.isChangingConfigurations(). Этот метод всегда будет возвращать false до тех пор, пока активность не будет готова к уничтожению. Он имеет действительное значение до вызова Activity.onPause(), что вы можете проверить и определить, вращается ли ваше устройство, и ваше приложение должно выполнить некоторые специальные оптимизации или процедуры сохранения состояния.

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

-1

в вашем фрагменте переопределении onconfigurationchanged метод

@Override 
public void onConfigurationChanged(Configuration newConfig) 
{ 
    super.onConfigurationChanged(newConfig); 

    // reload your views here 
} 
0

Когда ориентация изменяется все фрагменты и мероприятия будут уничтожены, а взгляды воссозданы вновь; если вы не измените настройки конфигурации:

<activity android:name=".SampleActivity" 
      android:configChanges="orientation|keyboardHidden"> 

Так в основном ключ здесь OnStop() и OnDestroy(), вы должны сохранить состояние ваших задач при повороте в OnStop() метод (или даже OnPause()), чтобы перезапустить их снова при загрузке представлений (onResume()).

Подробнее здесь link

0

Когда деятельность и фрагменты вращаются, они разрушаются (с onDestroy()), то они идут через тот же жизненный цикл, как они были созданы.

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