我对软/弱引用看了也不少博客,但是还是有一点疑问,尤其是android 2.3
之后的软/弱引用机制
尝试搜索无果后,来这里请教一下,问题应该很简单,但是对我来说很困惑有点绕不过来弯.
谢谢
ViewStub
和其他很多地方都有用到WeakReference
弱引用不是在系统GC的时候如果它只被一个软引用所引用,那么它将会被回收吗?
在ViewStub
的源码中,在inflate()
一个ViewStub
的之后
同时将inflate()
完毕的view
添加至新创建的WeakReference
中,
那么这个view
不就只?
被一个软引用所引用了吗?
如果这时系统GC
那么view是不是被回收了?那么下次想从WeakReference
中获取它的时候是不是又可能会为null
?从而导致错误?
或者说这种情况是不会被系统GC
的? 望大鸟指教一下愚昧小弟
WeakReference 메커니즘에 대한 이해는 정확하지만 ViewStub 코드에 대한 이해는 올바르지 않다고 생각합니다
예
관련 객체의 참조 관계는 다음과 같습니다.
으아악 으아악따라서 inflatedView는 여전히 강력하게 참조되며 GC가 되지 않습니다