base的封装

BaseActivity

public abstract class BaseActivity<P extends BasePresenter> extends AppCompatActivity {
    protected  P presenter;
    @Override
    protected void onCreate(@Nullable Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(provideLayoutId());
        ButterKnife.bind(this);
        presenter = providePresenter();
        initListener();
        initDate();
    }

    public abstract P providePresenter();
    public abstract int provideLayoutId();

    public abstract void initListener();
    public abstract void initDate();

    @Override
    protected void onDestroy() {
        super.onDestroy();
        presenter.onDestroy();
        presenter = null;
    }
}

BasePresenter

public abstract class BasePresenter<V extends IView> {
    protected CompositeDisposable compositeDisposable = new CompositeDisposable();
    protected V view;

    public BasePresenter(V view) {
        this.view = view;
        initModel();
    }

    public abstract void initModel();

    //内存优化
    public void onDestroy() {
        view = null;
        compositeDisposable.clear();
    }

}

BaseView

public interface IView {
}

猜你喜欢

转载自blog.csdn.net/qq_42120784/article/details/82772491