避免在按下后退按钮时关闭警报对话框?

Avoid Alert Dialog getting closed when back button pressed?

首先要说的是,这是看教程做的。这是我从广播接收器调用的自定义警报对话框 activity 部分。唯一的问题是单击后退按钮。警报对话框 activity 启动后,当我按下后退按钮时,它会关闭。

 public class AlertDialogActivity extends Activity {
    @Override 
 protected void onCreate(Bundle savedInstanceState) 
 { 
    super.onCreate(savedInstanceState);
    this.setFinishOnTouchOutside(false);
    getWindow().addFlags(WindowManager.LayoutParams.FLAG_NOT_TOUCHABLE);
    getWindow().addFlags(WindowManager.LayoutParams.FLAG_NOT_TOUCH_MODAL);
    setContentView(R.layout.activity_inmsgdialog);
 }
  @Override
public void onBackPressed()
{
    super.onBackPressed();
    Toast.makeText(getApplicationContext(), "Back Pressed", Toast.LENGTH_SHORT).show();
}
}

我已经尝试 onBackPressed 并且我能够看到 toast 消息,但是 activity 正在关闭。

您可以使用以下选项来处理后退按钮按下

@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {

    if (keyCode == KeyEvent.KEYCODE_BACK) {

       //your code
        return true;
    } else {

    }
}

看这里:

 @Override 
public void onBackPressed() 
{ 
    super.onBackPressed(); //Remove this line 
    Toast.makeText(getApplicationContext(), "Back Pressed", Toast.LENGTH_SHORT).show();
} 

如果您想禁用 activity 的后退按钮,请不要调用 super.onBackPressed(); 代码。所以去掉这一行。希望对你有帮助。

不要传播事件,你应该是好的。

@Override
public void onBackPressed()
{
    //don't call super
}