Android的浮动窗口加上FLAG_SHOW_WHEN_LOCKED失败

时间:2012-11-16 05:25:42

标签: android user-interface styles

我的应用程序在锁定屏幕之前向用户显示一个对话框。这是一个包含DialogFragments的简单Activity(来自支持库,因为这个应用程序在2.2+上运行)。

由于显示这些对话框的实际活动不是Android标准的浮动窗口,

getWindow().addFlags(WindowManager.LayoutParams.FLAG_SHOW_WHEN_LOCKED);

工作得很好。

但是,我以为我会使用看起来像Dialog的Activity。但是,所有Dialog主题(Holo等)都有这个项目:

<item name="android:windowIsFloating">true</item>

由于某种原因,导致窗口标志被完全忽略。有趣的是,用户解锁屏幕后会显示活动。

为什么会如此,是否有办法绕过它?

1 个答案:

答案 0 :(得分:4)

遇到同样的问题。在这个问题上似乎唯一可行的是

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

请勿忘记使用清单中的键盘锁定权限:

<uses-permission android:name = "android.permission.DISABLE_KEYGUARD"/>