如何解决如何在 Android 上在运行时锁定应用程序屏幕方向?
我的应用默认遵循屏幕方向,但我想添加一个设置以强制特定方向。 我已经能够在 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 举报,一经查实,本站将立刻删除。