5

Я хочу сделать операцию, которая позволяет изменять ориентацию в определенном состоянии, но не иначе. Точнее, я хочу предотвратить перезапуск активности, когда фоновый поток занят.Условный перезапуск по Activity onConfigurationChanged

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

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

    if (orientationChangeAllowed) { 
     // how do I restart this activity? 
    } else { 
     // don't do anything 
    } 
} 

ответ

7

, если это разрешено вызов setRequestedOrientation(), когда это не разрешено, ничего не делать.

В качестве подсказки: вы можете использовать onRetainNonConfigurationInstance() и getLastNonConfigurationInstance() и вернуть (объект, содержащий) AsyncThread. Таким образом, Activity изменит ориентацию, когда пользователь захочет. Обратите внимание, что: Вы не должны терять ссылку на Context (это может быть ссылка на ваш Activity или Drawable, ...).

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

  • Нет связанных вопросов^_^