【发布时间】:2013-12-23 09:41:34
【问题描述】:
当用户按下 Home 时,我想在我的应用程序中显示一个 AlertDialog(无论是否退出应用程序)。我读到 Home 不能被覆盖。所以,我试图覆盖 onPause 方法。当我按下返回按钮时它工作正常。但是,问题出在主页按钮上。当我按下主页按钮时它会显示对话框,但它会在我对对话框执行任何操作之前将应用程序发送到后台。有没有办法在将应用程序发送到后台之前做一些工作?
我的作品:
@Override
protected void onPause() {
super.onPause();
if (clr.equals("red")) {
AlertDialog.Builder alertD = new AlertDialog.Builder(this);
alertD.setMessage("Do you want to cancel your schedule?")
.setCancelable(false)
.setPositiveButton("Yes",
new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog,
int id) {
finish();
}
});
alertD.setNegativeButton("No",
new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int id) {
moveTaskToBack(true);
}
});
AlertDialog alertDD = alertD.create();
alertDD.show();
}
}
【问题讨论】:
-
查看此链接以获取示例。您需要使用 KeyEvent stackoverflow.com/questions/11273243/…
-
当你点击返回按钮时,你确定覆盖 onPause 可以正常运行吗?我试过你的代码,当我点击后退按钮时,应用程序进入后台太快,看不到你的对话框......
-
@MengMeng 是的,它工作得非常好。
-
onPause 不会阻止活动关闭...那么当活动同时关闭时,如何点击对话框?
-
@MengMeng 我覆盖了它,所以它不会完成活动,除非我运行finish() :)
标签: android