如果 activity 正在完成,如何防止调用 onCreate/onCreateView 方法
How to prevent the calls to onCreate/onCreateView methods if the activity is finishing
我有一个 ActivityA
并且有一个 fragmentA
onAttach()
fragmentA
方法,我需要检查一些条件,如果失败,我需要完成 activity。
我正在通过调用 getActivity().finish()
来完成 activity。
甚至在我调用finish方法后,它仍然在调用fragmentA
中的onCreate()
、onCreateView()
和onViewCreated()
方法。
有什么办法可以阻止这些电话吗?
正如@DeeV 评论的那样,我会在附加 Fragment
之前检查条件。在这种情况下,您根本不必处理片段生命周期,这是一种更简洁的方法。
如果这不可能,还有一个 hacky 方法。您可以在 onAttach()
中调用 finish()
,然后使用 activity 的方法 isFinishing()
,其中 returns 一个 boolean
标志。我认为这应该可以解决问题。
例如在片段的 onCreate
方法中:
if (getActivity().isFinishing()) {
// finish was called in onAttach
}
我有一个 ActivityA
并且有一个 fragmentA
onAttach()
fragmentA
方法,我需要检查一些条件,如果失败,我需要完成 activity。
我正在通过调用 getActivity().finish()
来完成 activity。
甚至在我调用finish方法后,它仍然在调用fragmentA
中的onCreate()
、onCreateView()
和onViewCreated()
方法。
有什么办法可以阻止这些电话吗?
正如@DeeV 评论的那样,我会在附加 Fragment
之前检查条件。在这种情况下,您根本不必处理片段生命周期,这是一种更简洁的方法。
如果这不可能,还有一个 hacky 方法。您可以在 onAttach()
中调用 finish()
,然后使用 activity 的方法 isFinishing()
,其中 returns 一个 boolean
标志。我认为这应该可以解决问题。
例如在片段的 onCreate
方法中:
if (getActivity().isFinishing()) {
// finish was called in onAttach
}