7

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

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

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

工作正常。

但是,我想我会使用一个看起来像对话框的活动。但是,所有 Dialog 主题(Holo 等)都有这个项目:

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

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

为什么会这样,有没有办法解决它?

4

1 回答 1

4

遭受同样的问题。在这个问题上似乎唯一有效的是

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

不要忘记在清单中使用 keyguard 权限:

<uses-permission android:name = "android.permission.DISABLE_KEYGUARD"/>
于 2012-12-02T06:31:29.950 回答