如何在 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:
- 该应用程序在后台(使用前台服务 运行),并且用户试图终止该应用程序,例如从轮播中清除所有应用程序,或清除此应用程序等
- 应用程序在前台,用户使用“最近”按钮关闭应用程序。
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()
}
我的活动 Activity 运行 bound/unbound 服务,这是应用程序的重要组成部分。我想在上述 Activity 且服务为 运行 时用户尝试关闭应用程序时显示 AlertDialog。我知道这不符合良好的用户体验设计,但该功能是必不可少的且不可恢复,因此在此步骤需要用户确认。
我已经覆盖了以下方法。
@Override
public void onBackPressed() {
//Handle AlertDialog here.
//Activity must not stop + Application must not close without user confirmation.
}
除了“后退”按钮之外,我还需要在其他两种情况下显示 AlertDialog:
- 该应用程序在后台(使用前台服务 运行),并且用户试图终止该应用程序,例如从轮播中清除所有应用程序,或清除此应用程序等
- 应用程序在前台,用户使用“最近”按钮关闭应用程序。
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()
}