android工具栏后退导航无法正常工作

时间:2014-12-12 19:07:52

标签: android android-fragments android-navigation android-toolbar

我有两个活动A和B.

我在活动A的片段内有一个mapview,按钮点击,活动B启动。生命周期如下:

onPause() in fragment inside A
onPause() in activity A

onStop() in fragment inside A
onStop() in activity A

当我从活动B按下设备上的物理后退按钮时,它返回到活动A,流程就像这样。

onStart() in activity A
onStart() in fragment inside A

onResume() in activity A
onResume() in fragment inside A

现在,我在ActivityB中使用setSupportActionBar(mToolbar)将自定义工具栏设置为操作栏。我还为后退导航设置getSupportActionBar().setDisplayHomeAsUpEnabled(true);,它显示左箭头。 问题是,单击向左箭头,活动A将再次重新创建。 生命周期如下:

onDestory() in fragment(in Activity A)
onCreate() in activity A
onCreate() in fragment
onCreateView() in fragment
onStart() in activity A
onStart() in fragment
onResume() in activity A
onResume() in fragment

正因为如此,活动A片段中的地图再次重新加载。

我们可以阻止片段在后退导航中被破坏吗?

提前致谢

1 个答案:

答案 0 :(得分:0)

您是否尝试使用 singleTop launchMode启动活动A?我遇到了同样的问题,并为调用活动指定了这个launchMode解决了我的问题。

<activity
    android:name="A"
    android:label="..."
    android:launchMode="singleTop" />