在某些情况下,我的应用程序应该显示块屏幕。此屏幕会弹出所有屏幕,覆盖所有 UI 元素,并且不会对按下返回和主页按钮做出反应,但应该能够输入密码。
你能建议我一种方法吗?
你真的不应该那样尝试。用户应该控制自己的手机。如果我想查看我的电子邮件,查看我的通知,切换到另一个应用程序或任何我应该能够做到的事情,只要我可以。
话虽如此:可以通过在您的活动中覆盖此方法来阻止后退按钮(例如,什么都不做)
public void onBackPressed() {
}
Activity
创建具有透明背景的全屏,将您的“输入密码信息”逻辑、 override
“主页”和“后退按钮”操作放在该Activity中。
但这不是最佳Android
做法。
我将忽略您为什么要这样做的问题,而只关注如何做。如果要在所有其他屏幕上全屏显示 UI,则需要使用系统警报窗口。您将需要权限SYSTEM_ALERT_WINDOW,并将您的窗口类型设置为
WindowManager.LayoutParams.TYPE_SYSTEM_ALERT