1

我在一个应用程序上工作,我遇到了一个奇怪的问题。当屏幕被锁定时,我会在应用程序被激活时出现一个对话框,它适用于 Lolipop、KitKat 和旧版本。这个问题似乎只出现在 V6 Marshmallow 中:对话框出现一秒钟,然后它似乎在后台消失了。但是,如果您按下对话应该在的位置,对话的活动就像对话真的在那里一样工作!我找到了很多关于这个问题的答案,但似乎没有一个对我有用。在 onCreate() 我设置了必要的标志:

// allow to be shown when screen is locked
        Window win = getWindow();
        WindowManager.LayoutParams winParams = win.getAttributes();
        // winParams.flags |= WindowManager.LayoutParams.FLAG_FULLSCREEN;
        // winParams.flags |= WindowManager.LayoutParams.FLAG_LAYOUT_IN_SCREEN;
        winParams.flags |= WindowManager.LayoutParams.FLAG_SHOW_WHEN_LOCKED;
        // winParams.flags |= WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON;
        win.setAttributes(winParams);

我也尝试禁用键盘保护但没有结果:

KeyguardManager myKeyGuard = (KeyguardManager) Context.getSystemService(Context.KEYGUARD_SERVICE);
        KeyguardManager.KeyguardLock myLock = myKeyGuard.newKeyguardLock(KEYGUARD_SERVICE);
        myLock.disableKeyguard();

这是我在 AndroidManifest.xml 中的声明:

<activity
            android:name="Activity"
            android:showOnLockScreen="true"
            android:theme="@style/Theme.Dialog" />

我注意到如果我从主题中删除 Dialog 样式,它会起作用。但我需要它成为一个对话!

请记住,此代码适用于除 V6 之外的所有版本!任何想法?

4

0 回答 0