使用Butterknife,有强制刷新、刷新、加载功能,进入界面快速退出,会报空指针的问题

原因:因为网络请求一般都是异步请求,请求成功回调后,都需要更新ui,这个时候,如果界面已经调用了onDestory()方法,相当于这个Activity已经被销毁了,调用了unBind()方法,就会报空指针了。
解决:在super.onDestroy();这个前面解绑,解绑后并将Unbinder对象置为null,然后在请求网络回调的方法中判断当Unbinder==null时,return;不执行下面更新ui的操作了。

代码:
base类:

 @Override
    public void onDestroy() {
        if (mUnbinder!=null) {
            mUnbinder.unbind();
            mUnbinder=null;
        }
        super.onDestroy();
    }

请求网路回调:

 @Override
            public void success(ReturnVo subjectListReturnVo, Response response) {
                if (mUnbinder==null){
                    return;
                }
}
注意:如果存在强制刷新,则需要在调用强制刷新的方法前判断是否为空

你可能感兴趣的:(使用Butterknife,有强制刷新、刷新、加载功能,进入界面快速退出,会报空指针的问题)