如何在后退按钮上清除以前的活动堆栈和退出应用程序?

时间:2011-05-11 13:40:59

标签: android android-activity

我有三项活动:

A,B,C

A是主屏幕。

按照以下A->B->C

启动活动

如果我使用后退按钮进入主屏幕,我想清除活动堆栈/以前的活动历史记录,它应该退出应用程序。

任何人都可以指导我如何实现这一目标吗?

4 个答案:

答案 0 :(得分:13)

非常简单:对用于启动活动A的意图使用intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);

答案 1 :(得分:3)

您可以执行以下操作:
1.在活动声明A中设置AndroidManifest中的clearTaskOnLaunch = "true" 2.在活动C中:

@Override
public void onBackPressed(){
    moveTaskToBack(true);
}

因此,如果用户按下 - 它会回到主屏幕 如果用户再次启动应用程序 - 任务堆栈清除,他进入根活动(A)

答案 2 :(得分:0)

在活动A中试试这个:

@Override
    public boolean onKeyDown(int keyCode, KeyEvent event)
    {
        if (keyCode == KeyEvent.KEYCODE_BACK && event.getRepeatCount() == 0){
                finish();
        }

        return super.onKeyDown(keyCode, event);
    }

这应确保如果您点击后退按钮,则活动为finish()。如果此活动位于堆栈的底部finish,则应退出活动。

答案 3 :(得分:0)

我认为compostus是真的,但如果没有,从A你可以使用startActivityForResult()启动B,并在onActivityResult()中处理收到的“消息”。 如果按下后退按钮,活动B将发送“CLOSE_ACTIVITY”消息。