如果活动正在完成,如何阻止对onCreate / onCreateView方法的调用

时间:2016-07-15 17:05:33

标签: android oncreate

我有一个ActivityA,主持一个fragmentA

onAttach()的{​​p> fragmentA方法,我需要检查一些条件,如果失败,我需要完成活动。 我正在通过致电getActivity().finish()完成活动。

即使我调用了finish方法,它仍然会调用onCreate()中的onCreateView()onViewCreated()fragmentA方法。

有什么办法可以阻止这些电话吗?

1 个答案:

答案 0 :(得分:1)

正如@DeeV评论的那样,我会在附加Fragment之前检查条件。在这种情况下,您不必处理片段生命周期,这是一种更干净的方式。

如果无法做到这一点,就会有一种愚蠢的方式。您可以在finish()中调用onAttach(),然后使用活动的方法isFinishing(),该方法会返回boolean标记。我认为这应该可以解决问题。

E.g。在您的片段的onCreate方法中:

if (getActivity().isFinishing()) {
   // finish was called in onAttach
}