Условный перезапуск на 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
}
}
1 ответ
Если это разрешено звонить setRequestedOrientation()
, когда это не разрешено, ничего не делать.
Как совет: вы можете использовать onRetainNonConfigurationInstance()
а также getLastNonConfigurationInstance()
и вернуть (объект, содержащий) AsyncThread
, Таким образом, Activity
изменит ориентацию, когда пользователь хочет. Обратите внимание: вы не должны пропускать ссылку на Context
(это может быть ссылка на ваш Activity
или Drawable
...)