我在ViewPager
中有片段。当我最小化应用程序时,它将在onPause()
内的Fragment上调用ViewPager
,然后在我恢复应用程序时,它将调用onResume()
。但是当我再次最小化它时,onPause()
不再被调用。
您对此有任何想法吗?
答案 0 :(得分:1)
我认为我已找到问题的原因。在“父片段”的onStop()
上,他们放置了以下代码:
try {
Field childFragmentManager = Fragment.class
.getDeclaredField("mChildFragmentManager");
childFragmentManager.setAccessible(true);
childFragmentManager.set(this, null);
} catch (NoSuchFieldException e) {
throw new RuntimeException(e);
} catch (IllegalAccessException e) {
throw new RuntimeException(e);
}
我不知道这样做的目的,但这似乎是支持嵌套片段的bug的一种解决方法。 Getting the error "Java.lang.IllegalStateException Activity has been destroyed" when using tabs with ViewPager
在上面的链接中,建议将此代码添加到onDetach()
上。但似乎他们错误地将其放置在onStop()
上。
当我将上面的代码转移到onDetach()
时,子片段的生命周期现在没有问题。
这很可怕,因为我仅支持该项目,而不是最初创建它的人。我只是希望这不会有任何副作用。非常感谢所有给出答案/建议的人。我很感激。 :)