像许多其他人一样,我正在为这个错误而苦苦挣扎:
java.lang.IllegalStateException: Fragment xyz not attached to Activity
This question提供了一些关于如何处理这个问题的想法。然而,这个问题没有任何解释,为什么 Fragment 首先从他们的 Activity 中分离出来?了解发生这种情况的原因是否有助于我设计应用以避免发生这种情况?
在可能的情况下,我没有一些异步任务并在它完成时调用 getResources()
;我在 Fragment 的 onCreate()
方法中调用了 getResources()
。有时,当我相当快地浏览我的应用程序时,会出现错误。是否可以预期 Fragment 在其自己的 onCreate()
方法期间甚至不一定附加到其 Activity?
其次,链接问题中提供的解决方案(guarding getResources()
with isAdded()
and getActivity() != null
)别帮我没有合理的方法来处理 getResources()
不可用的情况。
最佳答案
因为 Android 假设 Activity 可能会被销毁并重新创建以适应配置更改。相比之下, fragment 不是。
Is it to be expected that the Fragment is not even necessarily attached to its Activity during its own onCreate() method?
是的,这是“预期的”。糟糕的设计 IMO,但在意料之中。
关于android - 为什么 Fragments 从它们的 Activity 中分离出来?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53975179/