当用户使用设备上的后退按钮时显示对话框

Show dialog when user used back button on device

目前我有一个具有以下代码的应用程序。如果用户在单击后退按钮之前没有保存项目,我会提供一个对话框以查看他们是否要在退出 activity.

之前保存它
  case android.R.id.home:
      if(!didWeSave){
          SHOW THE DIALOG BOX WITH OPTIONS
      } else {
         NavUtils.navigateUpFromSameTask(this);
      }
   return true;

现在,它只有在用户点击应用程序内的后退箭头时才能正常工作。但是,当我点击物理设备上的后退按钮时,它不起作用。这将如何解决?

谢谢

尝试覆盖 activity 的 onBackPressed(),并在那里显示对话框。

只需添加

@Override
public void onBackPressed() {
    //SHOW THE DIALOG BOX WITH OPTIONS
}

在你的activity

以上答案是正确的,但为了完成,您必须注释掉 super(),以避免 activity 在没有用户交互的情况下关闭您的对话框并提供 window 泄漏。

public void onBackPressed() {

 //do Your stuff here
   showDialog();

 //comment out super() here
 //super.onBackPressed();

}