如何在 activity onDestroy 之前以及用户关闭应用程序之前显示 AlertDialog?

How to display an AlertDialog before activity onDestroy, and before the application is closed by user?

我的活动 Activity 运行 bound/unbound 服务,这是应用程序的重要组成部分。我想在上述 Activity 且服务为 运行 时用户尝试关闭应用程序时显示 AlertDialog。我知道这不符合良好的用户体验设计,但该功能是必不可少的且不可恢复,因此在此步骤需要用户确认。

我已经覆盖了以下方法。

@Override
public void onBackPressed() {
    //Handle AlertDialog here.
    //Activity must not stop + Application must not close without user confirmation.
}

除了“后退”按钮之外,我还需要在其他两种情况下显示 AlertDialog:

  1. 该应用程序在后台(使用前台服务 运行),并且用户试图终止该应用程序,例如从轮播中清除所有应用程序,或清除此应用程序等
  2. 应用程序在前台,用户使用“最近”按钮关闭应用程序。

PS:是否有不同的方法来支持手势而不是 B-H-R 按钮?

所以这是您无法覆盖的 android 功能。仅对于后退按钮,您可以实现 dialog box,而不是其他两个键,它们可以将您的应用程序带入 taskbar 或转到 home

创建方法exitByBackKey()

        AlertDialog alertbox = new AlertDialog.Builder(this)
                .setMessage("Do you want to exit application?")
                .setPositiveButton("Yes", new DialogInterface.OnClickListener() {
                    // do something when the button is clicked
                    public void onClick(DialogInterface arg0, int arg1) {
                        System.exit(0);
                        //close();
                    }
                })
                .setNegativeButton("No", new DialogInterface.OnClickListener() {
                    // do something when the button is clicked
                    public void onClick(DialogInterface arg0, int arg1) {
                        //nothing
                    }
                })
                .show();
    }

现在在您的 onBackPressed() 下调用此方法。

@Override
public void onBackPressed() {
    //Handle AlertDialog here.
    //Activity must not stop + Application must not close without user confirmation.
     exitByBackKey()
}