问题描述
我的应用默认遵循屏幕方向,但我想添加一个设置以强制特定方向。 我已经能够在 Application 类中使用以下代码来做到这一点
public void applyOrientationMode() {
final OrientationEnum orientation = PreferencesHelper.getorientationMode();
if (this.orientationLifecycleCallback != null) {
try {
unregisteractivityLifecycleCallbacks(this.orientationLifecycleCallback);
} catch (final Throwable t) {
ExceptionHelper.fullLogging(t,TAG);
}
}
if (orientation != null && orientation != OrientationEnum.UNLOCKED) {
this.orientationLifecycleCallback = new Application.ActivityLifecycleCallbacks() {
@Override
public void onActivityCreated(Activity activity,Bundle bundle) {
switch (orientation) {
case PORTRAIT:
activity.setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);
break;
case LANDSCAPE:
activity.setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE);
break;
}
}
@Override
public void onActivityStarted(Activity activity) {
}
@Override
public void onActivityResumed(Activity activity) {
}
@Override
public void onActivityPaused(Activity activity) {
}
@Override
public void onActivityStopped(Activity activity) {
}
@Override
public void onActivitySaveInstanceState(Activity activity,Bundle bundle) {
}
@Override
public void onActivityDestroyed(Activity activity) {
}
};
registeractivityLifecycleCallbacks(this.orientationLifecycleCallback);
}
}
这段代码是从 application.onCreate() 调用的 它工作正常,但是如果我将设置设置为纵向模式并在横向屏幕上打开一个新活动,我可以看到在纵向模式下重新创建之前在横向模式下创建的屏幕。 我如何才能防止这种情况?
谢谢
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)