启动Android活动并弹出除Home / Main之外的所有其他活动

时间:2013-09-20 16:32:27

标签: android

我的Android应用程序适用于徒步旅行俱乐部,并以主屏幕开始,这是主要活动。 主屏幕显示了家庭风格,并有一些核心功能按钮:即将到来的远足列表,远足历史,最后反应以及留言板。

活动流程非常简单,您可以从以下位置导航: 首页 - >远足名单 - >远足细节

然后使用“后退”按钮返回。从Home活动返回将要求关闭应用程序。 我已经使用FLAG_ACTIVITY_CLEAR_TOP标志来阻止同一活动的多个实例。 但我的问题是我还实现了一个菜单来直接导航到核心功能。

例如,在“远足细节”屏幕中,可以选择转到留言板。但我不想保留远足名单 - >在堆栈上远足详细活动。 因此,当从留言板按Back时,我总是想返回Home活动。

是否有可能弹出堆栈并且只在启动新活动之前保留Home活动?我想这可以解决我的问题。

1 个答案:

答案 0 :(得分:2)

我在SO上发现了similar可能有效的内容。

退房:FLAG_ACTIVITY_TASK_ON_HOME

Pre API 11:

使用startActivityForResult()从家中开始所有活动。通过全局菜单导航到并行堆栈时。在您当前的活动中调用此信息:

// startParallelActivity();
setResult(KILL_YOURSELF);
finish;

在home之上的每个活动都实现了onActivityResult(),如下所示:

@Override
    protected void onActivityResult(int requestCode, int resultCode, Intent data) {
        super.onActivityResult(requestCode, resultCode, data);

        if(resultCode == KILL_YOURSELF) {
            setResult(KILL_YOURSELF);
            finish();
        }
    }

这会破坏当前堆栈中的所有活动,只留下当用户点击“返回”时将存在的主页活动