【问题标题】:Android Fragment: getActivity() returning null when coming from backgroundAndroid Fragment:getActivity() 从后台返回 null
【发布时间】:2016-12-22 11:42:38
【问题描述】:

我正在开发一个具有活动的 android 应用程序。该 Activity 有一个 ViewPager,它使用 FragmentStatePagerAdapter 加载两个片段。

正在通过 Activity 的 onResume 方法重新创建此适配器。

错误是这样出现的:

创建活动后,我将我的应用程序置于后台(使用设备的主页按钮)并打开其他应用程序(特别是那些消耗大量内存的应用程序)。之后,我再次从后台打开我的应用程序。我在 viewPager 中的一个片段中有这样的方法:

public void doSomething(){
    if(getActivity() != null) {
        ((HomeActivity) getActivity()).doThings():
    }
}

在调试时我发现 getActivity() 方法此时返回 null。所以“doThings()”方法永远不会被执行。我还注意到创建了 Fragment 的视图。

当我不打开在我的应用程序的后台时间消耗内存的其他应用程序时,我没有这个问题。

这是溢出内存错误吗?如果 Fragment 似乎已正确加载,为什么 getActivity() 方法返回 null?

提前谢谢你

【问题讨论】:

标签: android android-fragments android-activity android-viewpager


【解决方案1】:

您可以覆盖片段中的onAttach(Activity) 方法并在其中获取对您的活动的引用。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-12-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-05-10
    相关资源
    最近更新 更多