Android 安卓返回同一活动完成旧活动

Android 安卓返回同一活动完成旧活动,android,Android,你好,我有一个从互联网获取数据的列表活动和一个搜索活动。 当用户按下搜索按钮时,搜索活动开始并从用户处获取筛选器。然后,当用户按下go按钮时,主列表活动开始,搜索活动结束。主要活动显示搜索结果 问题是当用户按下手机搜索结果活动上的“后退”按钮时,旧列表就会出现 A --> B --> A (B is finished) A --> A (this is activity stack, lets make another search) A --> A -->

你好,我有一个从互联网获取数据的列表活动和一个搜索活动。 当用户按下搜索按钮时,搜索活动开始并从用户处获取筛选器。然后,当用户按下go按钮时,主列表活动开始,搜索活动结束。主要活动显示搜索结果

问题是当用户按下手机搜索结果活动上的“后退”按钮时,旧列表就会出现

A --> B --> A (B is finished)
A --> A    (this is activity stack, lets make another search)
A --> A --> B --> A (b is finished)
A --> A --> A   (ovvv noo)

调用新活动时,如何强制关闭以前的活动


我尝试了launchmode,nohistory true。

当您调用新活动时,按如下方式完成当前活动:

finish();

还请阅读以下内容:

我认为您正在寻找的是意图标志,我认为您感兴趣的是:标志\u活动\u清除\u顶部


让我知道这是否有效。

我不确定您想要什么,但您可以选择使用“后退”按钮来完成活动,而不是完成活动

@Override
public boolean onKeyUp(int keyCode, KeyEvent event) {
    if (keyCode == KeyEvent.KEYCODE_BACK && event.isTracking()
            && !event.isCanceled()) {
        // TODO what you want 

        Intent intent = new Intent(ChoixPiecesJustificativesActivity.this,
                MainActivity.class);
        startActivity(intent);
        return true;
    }
    return super.onKeyUp(keyCode, event);
}
您可以使用android:launchMode=singleTop进行A活动。请注意,在这种情况下,将在您的A活动中调用方法,您的活动应根据您的需要对其做出适当的反应。

您可以使用android:launchMode=singleTask

结论-

A --> B (B is finished)
A (this is activity stack, lets make another search)
A --> B (b is finished)
A (ovvv yes)
你将永远不会有你的活动A或B的其他实例

单任务

系统在新任务和路由的根目录下创建活动 它的意图是什么。但是,如果活动的实例已经存在 存在时,系统通过 调用其onNewIntent方法,而不是创建新方法


参考资料:

这将结束活动,但我很确定有一种启动模式会更好地满足他所描述的内容。我如何才能强制关闭以前的活动-糟糕的语法使其无法获得帮助Erik。我也用涂饰;我指的是前一个同样的活动。在五月份的问题A->B->A B完成了B启动A并自行完成。所以在活动堆栈中有两个活动。
A --> B (B is finished)
A (this is activity stack, lets make another search)
A --> B (b is finished)
A (ovvv yes)