【问题标题】:android toolbar back navigation not working as expectedandroid工具栏后退导航无法按预期工作
【发布时间】:2014-12-12 19:07:51
【问题描述】:

我有两个活动 A 和 B。

我在活动 A 的片段内有一个地图视图,单击按钮时,活动 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 片段中的地图将再次重新加载。

我们可以防止片段在返回导航时被破坏吗?

提前致谢

【问题讨论】:

  • 这非常令人困惑...您应该尝试澄清流程

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


【解决方案1】:

您是否尝试过使用 singleTop 启动模式启动活动 A?我遇到了同样的问题,为调用活动指定此启动模式解决了我的问题。

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-07-04
    • 1970-01-01
    • 1970-01-01
    • 2020-05-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-09
    相关资源
    最近更新 更多