我目前有一个安卓应用程序,它流A -> B -> C -> D在活动1中启动。
在D之后,我让activity 2启动,并运行以下代码以从堆栈中删除所有片段。
List<Fragment> fragments = getSupportFragmentManager().getFragments();
if (fragments != null) {
for (Fragment fragment : fragments) {
getSupportFragmentManager().beginTransaction().remove(fragm
我有一个主要活动,即搜索界面,当用户单击列表中的结果时,结果细节将显示在Fragment中。主要活动有一个Action,但是在细节片段中,Action是隐藏的。为了隐藏片段中的Action,我从片段活动中调用了一个方法,比如:((SearchInterface)getActivity()).hideABar();。然后,当用户单击“后退”按钮时,他们返回到搜索界面,Action再次出现。这样做比简单地调用一个方法要复杂一些。我在主活动中设置了一个Interface,并覆盖了片段中的方法,如:主活动:
public interface Callback {
public void
我的应用程序中有两个有android:launchMode="singleTop"的活动。它如预期的那样工作。
我拥有singleTop的目的是部分地更新它们,而不必从头开始重新创建整个活动。示例执行如下所示。
A -> B
当从B向后按下时,将更新A中的显示。
一种-> B -> C
当从C向后按下时,将更新B中的显示。
然而,当我翻转显示器触发方向改变时,活动B在顶部(从C反压),B被神秘地破坏,A被显示。为什么会发生这种情况?android是否允许多个活动具有singleTop行为?如果发生方向改变,我是否应该将其他标志从C传递到B,以防止B关闭?
上