1.在使用弱引用避免内存泄露的时候,获取弱引用中的对象,需要先获取对象并对其进行强引用,然后判空;
而不是先判空,后取出引用,这样的话可能取出的对象就被回收掉了.
正确参考如下内容:
private final WeakReference<ActivatorPhoneInfoCallback> activatorPhoneInfoCallbackWeakReference;
activatorPhoneInfoCallbackWeakReference = new WeakReference<>(builder.mActivatorPhoneCallback);
ActivatorPhoneInfoCallback callback = activatorPhoneInfoCallbackWeakReference.get();
if (callback != null) {
}