我在应用程序类的onCreate期间有一个alertDialog提示符
(我添加了<uses-permission android:name="android.permission.SYSTEM_ALERT_WINDOW" />
)
我已将 setCancelable 设置为 false ,但它确实成功阻止用户按下后退按钮。
这是我迄今取得的成就,这也是我想要的。
但是,当我按下主页按钮时,应用程序确实“消失了”#34;但不知何故,对话框仍显示在主屏幕上,这就是我不想要的。
我期待的是后退按钮不应该做任何事情(这是我所取得的成就)。
当用户点击主页按钮时,整个应用包括对话应该消失。但不知何故,当我点击主页按钮时,对话框仍出现在主屏幕上......
答案 0 :(得分:1)
这是因为在创建AlertDialog时,您可能会传递ApplicationContext而不仅仅是Context。
通过遵循Android框架指南,您不应在Application类中进行任何UI更改。在你的片段活动中做。
在Activity类中这样做:
new AlertDialog.Builder(this)
或片段中的这个:
new AlertDialog.Builder(getContext)
如果您的应用程序进入后台状态,它将消失。
答案 1 :(得分:0)
试试这个,
myDialog.setOnKeyListener(new DialogInterface.OnKeyListener() {
@Override
public boolean onKey(DialogInterface dialog1, int keyCode, KeyEvent event) {
if (keyCode == KeyEvent.KEYCODE_BACK) {
return true;
}
return false;
}
});
答案 2 :(得分:0)
这样可以解决问题: -
dialog.setOnKeyListener(new Dialog.OnKeyListener() {
@Override
public boolean onKey(DialogInterface dialogs, int keyCode,
KeyEvent event) {
if (keyCode == KeyEvent.KEYCODE_BACK) {
return true;
}
if (keyCode == KeyEvent.KEYCODE_HOME) {
// Do your stuff here...
return true;
}
return false;
}
});