我对软/弱引用看了也不少博客,但是还是有一点疑问,尤其是
1 | android 2.3 |
之后的软/弱引用机制
尝试搜索无果后,来这里请教一下,问题应该很简单,但是对我来说很困惑有点绕不过来弯.
谢谢
1 | ViewStub |
和其他很多地方都有用到
1 | WeakReference |
弱引用不是在系统GC的时候如果它只被一个软引用所引用,那么它将会被回收吗?
在
1 | ViewStub |
的源码中,在
1 | inflate() |
一个
1 | ViewStub |
的之后
同时将
1 | inflate() |
完毕的
1 | view |
添加至新创建的
1 | WeakReference |
中,
那么这个
1 | view |
不就
1 | 只? |
被一个软引用所引用了吗?
如果这时系统
1 | GC |
那么view是不是被回收了?那么下次想从
1 | WeakReference |
中获取它的时候是不是又可能会为
1 | null |
?从而导致错误?
或者说这种情况是不会被系统
1 | GC |
的? 望大鸟指教一下愚昧小弟