android内存泄漏快速解决——view意外为空

场景描述:之前笔者接受一个多Activity多Fragment架构的app,但是发现其中的页面Activity中,总是存在网络请求的泄漏(通过LeakCanary可以发现),另外请求返回的OnSucess方法里经常出现各种view为空。显然,view是正常初始化的。这不是那个请求会必现,而是在跑monkey的时候,还是会经常报一批空指针问题,显示view为空。

  • 显然的,线程里回调发生的时候,线程所在的Activity或者根View 已经销毁,我们的返回的时候,view所依赖的Activity生命周期已经走过了OnDestroy()。

怎么处理呢?在callBack的基类里,传入Activity,并判断Activity的状态,至此,基本不会在出现这种空指针问题。
部分代码展示:

public abstract class JsonCallBack extends AbsCallback implements ParameterizedType {


    @Override
    public void onCacheSuccess(com.lzy.okgo.model.Response response) {
        super.onCacheSuccess(response);
        if (mWeakReference.get().isFinishing()) {
            return;
        }
        onSuccess(response);
    }

    @Override
    public void onSuccess(com.lzy.okgo.model.Response response) {
        if (mWeakReference.get().isFinishing()) {
            return;
        }
    }
}

Android内存泄漏解决(总)

你可能感兴趣的:(android内存泄漏快速解决——view意外为空)