Android 当使用标志“锁定时显示”时,在启动活动之前短暂显示键盘保护

Android 当使用标志“锁定时显示”时,在启动活动之前短暂显示键盘保护,android,android-windowmanager,Android,Android Windowmanager,我正在使用onAttachedToWindow()中的以下标志在键盘上方显示我的活动: FLAG_discover_KEYGUARD|FLAG_SHOW_锁定时|FLAG_打开屏幕 不过,当屏幕关闭时从后台服务启动我的活动时,键盘保护有时会在显示我的应用程序之前显示1-2秒。这种情况尤其发生在速度较慢的手机上(或在内存不足的情况下)。我觉得这很奇怪,因为我的理解是onAttachedToWindow()是在onCreate()/onResume()之后调用的,所以在设置上述标志时,所有“繁重的工

我正在使用
onAttachedToWindow()
中的以下标志在键盘上方显示我的
活动

FLAG_discover_KEYGUARD|FLAG_SHOW_锁定时|FLAG_打开屏幕


不过,当屏幕关闭时从后台服务启动我的活动时,键盘保护有时会在显示我的应用程序之前显示1-2秒。这种情况尤其发生在速度较慢的手机上(或在内存不足的情况下)。我觉得这很奇怪,因为我的理解是
onAttachedToWindow()
是在
onCreate()
/
onResume()
之后调用的,所以在设置上述标志时,所有“繁重的工作”都应该已经完成了?有没有办法只在我的
活动完成设置后才显示它

您尝试过UI线程吗。试着看看这个好教程。希望这对您有所帮助。

尝试添加

android.permission.DISABLE\u对清单xml的KEYGUARD权限


来源:

我也遇到了同样的问题。我很想得到答案。你在
onResume()
中做了什么特别重要的事情吗?我已经用你指定的相同标志创建了一个示例应用程序,即使在PoS LG Ally上,我也无法重现你描述的键盘保护延迟。您可以发布一些来自启动程序活动和清单的示例代码吗?谢谢@A--C,是的,我的
onCreate()
onResume()
都是资源密集型的,例如,它们会重新给位图上色并动态设置UI。不幸的是,这是必需的,并且不能异步执行,因为用户应该从一开始就看到最终的UI。您在这里提到了您的问题
my onCreate()和onResume()都是资源密集型的,例如重新着色位图。如果你试图阻止用户界面超过5秒,你会得到更高的ANR。相反,您必须在后台线程中执行位图的重载。或者在您的服务中准备位图,将它们保存到sd卡,然后在您的
活动中
只需从sd卡读取它们(当然是从后台线程)。阅读位图不会花费很长时间,所以希望用户不会注意到任何东西。您好,谢谢您的回答。WindowManager标志
标志\u discouse\u KEYGUARD
不需要此权限,因为它只会解除“不安全”(滑动)的KEYGUARD。但是你提供的链接实际上也提到了我面临的问题,而且似乎在使用“旧”键盘保护方法时不会发生这种情况。