package com.base;
import android.databinding.ViewDataBinding;
import com.base.util.InstanceUtil;
import java.lang.reflect.ParameterizedType;
/**
* Created by Administrator on 2016/4/5.
*/
public abstract class BaseActivity<P extends BasePresenter, B extends ViewDataBinding> extends DataBindingActivity<B> {
public P mPresenter;
@Override
protected void initPresenter() {
if (this instanceof BaseView &&
this.getClass().getGenericSuperclass() instanceof ParameterizedType &&
((ParameterizedType) (this.getClass().getGenericSuperclass())).getActualTypeArguments().length > 0) {
Class mPresenterClass = (Class) ((ParameterizedType) (this.getClass()
.getGenericSuperclass())).getActualTypeArguments()[0];
mPresenter = InstanceUtil.getInstance(mPresenterClass);
mPresenter.setView(this);
}
}
@Override
protected void onDestroy() {
super.onDestroy();
if (mPresenter != null) mPresenter.onDetached();
}
}