我的应用程序在锁定屏幕之前向用户显示一个对话框.这是一个包含DialogFragments的简单Activity(来自支持库,因为此应用程序在2.2上运行).
由于显示这些对话框的实际活动不是Android标准的浮动窗口,
getWindow().addFlags(WindowManager.LayoutParams.FLAG_SHOW_WHEN_LOCKED);
工作得很好.
但是,我在想我会使用一个看起来像Dialog的Activity.但是,所有Dialog主题(Holo等)都有这个项目:
<item name="android:windowIsFloating">true</item>
这由于某种原因导致窗口标志被完全忽略.有趣的是,用户解锁屏幕后会显示活动.
为什么会如此,是否有办法绕过它?
解决方法
遇到同样的问题.在这个问题上似乎唯一有用的是
KeyguardManager myKeyGuard = (KeyguardManager)getSystemService(Context.KEYGUARD_SERVICE); myLock = myKeyGuard.newKeyguardLock("tagName"); myLock.disableKeyguard();
别忘了在清单中使用keyguard权限:
<uses-permission android:name = "android.permission.DISABLE_KEYGUARD"/>