onBackPressed导致代码问题

时间:2013-11-21 01:54:01

标签: android eclipse

我在活动SCORE中有以下代码:

@Override
    public void onBackPressed() {                  
        Intent i = new Intent(Score.this, MainActivity.class);
        startActivity(i);
    } 

基本上当用户回击时,我希望他们回到主要活动。在主要我有按钮时,它会退出应用程序,如下所示:

case R.id.exitButton:
            finish();
            break;

因此,当我启动应用程序并点击退出按钮时,它可以正常退出应用程序。但是,当我在得分页面并回击而不是点击退出按钮应用程序不退出它返回到得分页面。谁能告诉我我做错了什么?

3 个答案:

答案 0 :(得分:2)

您从分数中启动MainActivity。分数未完成,因此分数活动仍处于活动状态且位于导航堆栈上。

尝试执行以下操作:

@Override
    public void onBackPressed() {                  
        Intent i = new Intent(Score.this, MainActivity.class);
        startActivity(i);
        finish();//Finishing the score activity is needed
    }

如上面的评论中所述,有一个退出按钮是不正常的,但如果您需要或需要,您可以自由实施。有关后台堆栈的更多信息,请查看以下android文档。

http://developer.android.com/guide/components/tasks-and-back-stack.html

还有各种方法可以回到活动活动看看Intent标志。例如以下文档页面中的FLAG_ACTIVITY_CLEAR_TOP:

http://developer.android.com/reference/android/content/Intent.html#FLAG_ACTIVITY_CLEAR_TOP

答案 1 :(得分:1)

我认为问题是您使用finsh()方法来完成活动。 可能你可以使用如下方法:

case R.id.exitButton:
           System.exit(0);
            break;
希望能帮到你。

答案 2 :(得分:0)

要从点击返回后进入主要活动,您需要添加以下内容..

@Override
public void onBackPressed() {                  
     finish();
}

点击退出按钮后退出该应用程序,添加以下内容。

case R.id.exit:
System.exit(0);
break;

希望这可以帮助你..