在android中按下后退按钮时保持我的活动

时间:2011-11-29 21:40:10

标签: android override back

我正在实现这个应用程序,我需要在按下后退键时暂停它,或者显示一个对话框,询问用户是否真的要退出。

我确实覆盖了后退键以显示带有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求助:)

3 个答案:

答案 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?