Fragment 和 Activity 的生命周期流程执行问题

Issue with the Life Cycle flow execution with Fragment and Activity

有一个名为 HomeActivity 的 Activity。

在片段容器中添加了名为 MyProfileFragment 的片段。

现在,在上面添加了一个UserLocationFragment

现在,在 UserLocationFragment 中,我打开 google 放置 api 对话框到 select 特定地址。我已经覆盖了 OnActivityResult 方法来在 UserLocationFragment

中设置结果

问题是:

调用MyProfileFragment的onResume()方法,设置地址后。意味着当我来到 UserLocationFragment

中覆盖的 onActivityResult 方法时

可能是什么问题?或者我应该怎样做才能避免调用之前片段的 onResume() 方法 MyProfileFragment ?

谢谢。

从您的代码看来,您似乎在使用 intent 来启动自动完成 activity。因此,根据 android 生命周期,当您移动到 ​​AutocompleteActivity 时,您的 HomeActivity 会停止,它的子组件也会停止,即 Fragments ,当您返回时, HomeActivity 是可见的,它会恢复,所有子 Fragments 也是如此。因此,也会在 MyProfileFragment 上调用 onResume。我们无法避免这一点。

因此,我不建议在 onResume 上进行 API 调用。

但是如果这是你的用例并且你必须在 onResume 中进行,我建议在 java 中使用全局 public static 变量,或者在 kotlin 中使用 companion object 变量作为像您评论过 isRefreshData 的标志,它让您可以控制何时应该进行 API 调用。当你认为合适的时候就true,当你得到结果时切换到false