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 {
}