BaseActivity:
public abstract class BaseActivity<T extends BasePresenter> extends AppCompatActivity {
T presenter;
@Override
protected void onCreate(@Nullable Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
createPresenter();
}
abstract void createPresenter();
@Override
protected void onDestroy() {
super.onDestroy();
if(presenter != null){
presenter.deatch();
}
}
}
BaseFragment:
public abstract class BaseFragment<T extends BasePresenter> extends Fragment {
T presenter;
@Nullable
@Override
public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
createPresenter();
return super.onCreateView(inflater, container, savedInstanceState);
}
abstract void createPresenter();
@Override
public void onDestroy() {
super.onDestroy();
if (presenter != null) {
presenter.deatch();
}
}
}
BasePresenter:
public interface BasePresenter<T> {
void atteach(T view);
void deatch();
}