2013-07-02 34 views
1

我有,我创建mContext碎片和垃圾收集

Context mContext = getActivity(); 

在我的分片嵌套构造函数,但没有用我的应用程序的长时间后mContext似乎碎片问题进行垃圾回收,当我恢复活动,该值现在为空。

我想到在我的片段的onResume上放置mContext空检查。这是处理这个错误的最好方法。此问题发生在多个地方。

回答

0

如果Activity不可见,则Activity是要其生命周期的onStop方法,那么Activity可以通过OS随时OS感觉像垃圾回收。

Activity不可见之后,您不应该依赖Context

总是得到新鲜Context,当你恢复Activity和不依赖于NullPointer检查时,你不应该摆在首位;-)

得到一个NullPointerhttp://developer.android.com/training/basics/activity-lifecycle/pausing.htmlhttp://developer.android.com/training/basics/activity-lifecycle/stopping.html参考。

编辑:

当你的活动收到调用的onStop()方法,它不再可见,并且应该释放不需要的,而几乎所有的资源:从最后一个环节报价用户没有使用它。一旦您的活动停止,系统可能会销毁实例,如果它需要恢复系统内存。