2010-06-12 3 views
0

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

<activity android:name=".CheckMemory" 
    android:configChanges="orientation" 
    android:screenOrientation="portrait" 
    android:theme="@style/customTheme" 
       android:label="@string/app_name"> 

    </activity> 

и

@Override 
    public void onConfigurationChanged(final Configuration newConfig) { 
     super.onConfigurationChanged(newConfig); 
    //Do nothing here 
    } 
+0

Определить «перезапуск». Какое поведение вы видите для этой деятельности? Есть ли какие-либо подсказки в выводах logcat относительно того, что происходит? –

+0

я получил ответ от ссылки http://developer.android.com/guide/topics/resources/runtime-changes.html Цитаты из выше ссылки «Обработка конфигурации Изменить себя Если ваше приложение Безразлично» t необходимо обновлять ресурсы во время определенного изменения конфигурации, и у вас есть ограничение производительности, которое требует от вас перезапуска активности, а затем вы можете объявить, что ваша активность сама обрабатывает изменение конфигурации, что предотвращает перезапуск вашей системы « – Maneesh

ответ

1

Я сделал это ниже и хорошо работает.

<activity android:name=".CheckMemory" 
     android:configChanges="orientation" 
     android:screenOrientation="portrait" 
     android:theme="@style/customTheme" 
        android:label="@string/app_name"> 

     </activity> 

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

Прежде всего, помните, что ориентация экрана определяется за активностью. Поэтому, если у вас есть другие действия, кроме CheckMemory, они все равно будут реагировать на изменение ориентации. Вам необходимо определить android:screenOrientation для всех ваших занятий.

Во-вторых, вы, кажется, называете super.onConfigurationChanged (newConfig), не будет ли это делать то, что система обычно будет делать? Попробуйте удалить эту строку и действительно оставить метод пустым (на самом деле ничего не делать).

+0

. метод empty приведет к тому, что система выдаст исключение. Вы можете просто полностью удалить этот метод, если вы ничего не делаете в нем. –

+0

Я просто делаю ниже и работает, не знаю как. @Override public void onConfigurationChanged (Конфигурация newConfig) { super.onConfigurationChanged (newConfig); } – Maneesh

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