使用的框架是MVP
public abstract class BaseActivity<V, P extends BasePresenter<V>> extends FragmentActivity {
private WeakReference<FragmentActivity> weakReference = null;
protected T mPresenter;
@Override
protected void onCreate(@Nullable Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(getLayoutId());
if (weakReference == null) {
weakReference = new WeakReference<FragmentActivity>(this);
}
ActivityUtil.getInstance().addActivity(weakReference.get());
mPresenter = createPresenter();
if (mPresenter != null) {
mPresenter.attachView((V) this);
}
initView();
initData();
}
protected abstract int getLayoutId();
protected abstract void initView();
protected abstract void initData();
protected abstract T createPresenter();
@Override
protected void onDestroy() {
super.onDestroy();
if (mPresenter != null) {
mPresenter.detachView();
}
ActivityUtil.getInstance().removeActivity(weakReference.get());
}