android - 为什么 Fragments 从它们的 Activity 中分离出来?

标签 android android-fragments

像许多其他人一样,我正在为这个错误而苦苦挣扎:

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/

相关文章:

android - 在使用 Android SDK 插件编译 Scala Android 多项目期间,X 已被定义为对象 X

java - 如何将无 Jar 库添加到 Android Studio?

android - Andengine中如何配置TiledTextureRegion

android - 读取所有联系人数据

java - 如何显示抽屉导航中的 fragment ?

java - Fragment 中的 findViewById() 返回 null

安卓慢速软键盘打开

android - 如何在 android 中从 BackStack 加载 fragment

android - 单击后隐藏/显示 ListView 项目中的元素

Android:在 viewpager fragment 之间传递数据的最佳方法