这是我熟悉的,即按返回键会导致活动获得“破坏”,或当开发者调用函数完成(),或当系统需要内存等..Activity.onDestroy幕后真正的破坏是什么意思?
并且也很熟悉我们需要在onDestroy中执行清理过程,如unBindDrawables(请参阅example),以避免OutOfMemory异常。
我的问题是:
被删除不活动的破坏意味着参考活动对象?即活动对象是否可用于GC?如果是这样,为什么我们需要显式删除对活动相关视图的引用?
考虑例如:
如果对象甲具有参照对象乙和乙由甲只提到,那么如果我们废了甲的参考有没有必要明确设置B的参考为空,两者都将进行GC编辑...
我的intuitio ñ告诉我,活动的情况是这样的...请告诉我我的错误在哪里。
谢谢!
在此先感谢CommonsWare,我很满意第一个问题。 – sevteen 2012-08-09 21:05:32
但关于第二...为什么然后“unbindDrawables”解决OutOfMemory错误?或者,也许我误解了unbindDrawables的含义? – sevteen 2012-08-09 21:11:00
@dioholic:该博客文章中没有任何内容是绝对必要的,尽管部分内容(尤其是背景内容)在某些情况下可能很有用。请参阅http://stackoverflow.com/a/7045044/115145。 – CommonsWare 2012-08-09 22:46:31