Android 是否避免在按下“后退”按钮时关闭警报对话框?

Android 是否避免在按下“后退”按钮时关闭警报对话框?,android,broadcastreceiver,android-alertdialog,back,Android,Broadcastreceiver,Android Alertdialog,Back,首先我想说的是,这是通过看一个教程来完成的。这是我从广播接收器调用的自定义警报对话框活动部分。唯一的问题是“后退”按钮单击。警报对话框活动启动后,当我按下后退按钮时,它将关闭 public class AlertDialogActivity extends Activity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState

首先我想说的是,这是通过看一个教程来完成的。这是我从广播接收器调用的自定义警报对话框活动部分。唯一的问题是“后退”按钮单击。警报对话框活动启动后,当我按下后退按钮时,它将关闭

 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();
}
}

我已尝试过按下后退按钮,我可以看到toast消息,但活动即将结束。

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

@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();
} 

不要调用
super.onBackPressed()代码”。所以把这条线去掉。希望能有所帮助。

不要宣传这件事,你应该做得很好

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

我现在就试试,让你知道。你可以通过删除'super.onBackPressed()'来实现同样的效果,但它可能会导致内存泄漏。super.onBackPressed()//删除这一行酷,几秒钟之前,我会得到所有的赞成票!