微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如何在 Android 上在运行时锁定应用程序屏幕方向?

如何解决如何在 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 举报,一经查实,本站将立刻删除。