【发布时间】:2013-07-02 17:37:08
【问题描述】:
我在创建片段时遇到问题
Context mContext = getActivity();
在我的嵌套片段构造函数中,但在很长一段时间没有使用我的应用程序 mContext 后,它似乎被垃圾收集了,当我恢复活动时,该值现在为 null。
我正在考虑对我的片段的 onResume 进行 mContext null 检查。这是处理此错误的最佳方法。这个问题出现在多个地方。
【问题讨论】:
标签: android
我在创建片段时遇到问题
Context mContext = getActivity();
在我的嵌套片段构造函数中,但在很长一段时间没有使用我的应用程序 mContext 后,它似乎被垃圾收集了,当我恢复活动时,该值现在为 null。
我正在考虑对我的片段的 onResume 进行 mContext null 检查。这是处理此错误的最佳方法。这个问题出现在多个地方。
【问题讨论】:
标签: android
如果您的Activity 不可见,则Activity 将进入其生命周期的onStop 方法,然后操作系统可以随时对Activity 进行垃圾收集。
在Activity 不可见后,您不应依赖Context。
当您恢复 Activity 时,请始终获取新的 Context,并且在您不应该首先获取 NullPointer 时不要依赖 NullPointer 检查;-)
请参阅 http://developer.android.com/training/basics/activity-lifecycle/pausing.html 和 http://developer.android.com/training/basics/activity-lifecycle/stopping.html 以供参考。
编辑:引用最后一个链接:
当您的活动收到对 onStop() 方法的调用时,它不再可见,并且应该释放几乎所有用户不使用时不需要的资源。一旦您的活动停止,如果需要恢复系统内存,系统可能会销毁该实例。
【讨论】: