我正在实现这个应用程序,我需要在按下后退键时暂停它,或者显示一个对话框,询问用户是否真的要退出。
我确实覆盖了后退键以显示带有2个按钮的对话框,是和取消,但是活动已经完成而没有显示对话框
我用来覆盖后退键的代码如下
// Overriding The Back Key To Stop The Music If Running
@Override
public void onBackPressed() {
super.onBackPressed();
show_are_you_sure_exit();
}
,功能如下
public void show_are_you_sure_exit() {
final AlertDialog show_are_you_sure_delete = new AlertDialog.Builder(
this).create();
show_are_you_sure_delete
.setMessage("Are You Sure You Want To Exit?! Your Pregress Won't Be Saved");
show_are_you_sure_delete.setButton("Yes",
new DialogInterface.OnClickListener() {
public void onClick(DialogInterface StopActivityDialog,
int which) {
start_main_screen_intent();
finish();
}
});
show_are_you_sure_delete.setButton2("Cancel",
new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int which) {
return;
}
});
show_are_you_sure_delete.show();
}
使用start_main_screen_intent()启动另一个活动
thx求助:)
答案 0 :(得分:1)
你正在调用super.onBackPressed(),它会调度事件并杀死活动 你想要的是
@Override
public void onBackPressed() {
show_are_you_sure_exit();
}
这样你以自己的方式处理事件,而不是正常的方式
答案 1 :(得分:0)
尝试删除super.onBackPressed()调用。在这种情况下,您可能还需要删除@Override,否则Eclipse可能会对您大喊大叫。我认为正在发生的事情是基础实施正在结束活动。
答案 2 :(得分:0)
请勿致电super.onBackPressed();
。它唯一做的事情(如果你扩展Activity
)是调用finish()
。
然而,请注意,此“退出”功能不是来自Android世界。我建议您查看您的应用程序架构以摆脱退出概念。
您可以在此帖中找到有关“退出”原因的详细信息:Is quitting an application frowned upon?