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
。
有一个名为 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
。