我的Android应用程序适用于徒步旅行俱乐部,并以主屏幕开始,这是主要活动。 主屏幕显示了家庭风格,并有一些核心功能按钮:即将到来的远足列表,远足历史,最后反应以及留言板。
活动流程非常简单,您可以从以下位置导航: 首页 - >远足名单 - >远足细节
然后使用“后退”按钮返回。从Home活动返回将要求关闭应用程序。 我已经使用FLAG_ACTIVITY_CLEAR_TOP标志来阻止同一活动的多个实例。 但我的问题是我还实现了一个菜单来直接导航到核心功能。
例如,在“远足细节”屏幕中,可以选择转到留言板。但我不想保留远足名单 - >在堆栈上远足详细活动。 因此,当从留言板按Back时,我总是想返回Home活动。
是否有可能弹出堆栈并且只在启动新活动之前保留Home活动?我想这可以解决我的问题。
答案 0 :(得分:2)
我在SO上发现了similar可能有效的内容。
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();
}
}
这会破坏当前堆栈中的所有活动,只留下当用户点击“返回”时将存在的主页活动