首页 > 解决方案 > 关闭活动时重新初始化片段

问题描述

我有一个带有片段的活动,这个片段中有一个地图和一些标记。我在后台运行一项更改标记位置的服务。

每个标记都有一个布尔值“isDrawn”,只要布尔值设置为 false,地图就会通过添加绘制标记来更新(我使用 LiveData 来观察标记)每当我关闭包含我调用 onDestroyView 的片段的 Activity 时,它都会设置 isDrawn每个标记为假。这样,当我再次打开 Activity 时,标记会再绘制一次。所有这一切都很好。

问题是这样的:在片段中,我可以点击标记,当我关闭此 Activity(使用 BackButton)并且标记更改其位置(通过服务)时,它会打开一个视图,该视图有一个打开另一个 Activity 的按钮我在说Activity时,我发现地图上有两个相同的标记。

知道我能做什么吗?我应该在关闭活动时删除片段并重新创建它吗?那可能吗?如果是这样,我应该如何进行?

标签: androidandroid-fragmentsandroid-activityserviceondestroy

解决方案


在这里您可以尝试 2 个选项

  1. 尝试创建一个静态变量并存储一些标志值。
  2. 借助 isVisible() 或 getUserVisibleHint() 检查 Fragment 是否可见

推荐阅读