package com.mathiasluo.designer.view.activity; import android.content.Context; import android.os.Bundle; import android.os.Handler; import android.support.annotation.Nullable; import android.support.v4.view.LayoutInflaterCompat; import android.support.v7.app.AppCompatActivity; import android.view.Window; import com.mathiasluo.designer.presenter.BasePresenter; import com.mikepenz.iconics.context.IconicsContextWrapper; import com.mikepenz.iconics.context.IconicsLayoutInflater; /** * Created by MathiasLuo on 2016/3/2. */ public abstract class BaseActivity<V, T extends BasePresenter<V>> extends AppCompatActivity { protected T mPresenter; protected Handler mHandler; @Override protected void onCreate(@Nullable Bundle savedInstanceState) { super.onCreate(savedInstanceState); getWindow().requestFeature(Window.FEATURE_CONTENT_TRANSITIONS); mPresenter = creatPresenter(); mHandler = new Handler(); mPresenter.attachView((V) this); mPresenter.OnViewCreate(); } @Override protected void onResume() { super.onResume(); mPresenter.OnViewResume(); } @Override protected void onDestroy() { super.onDestroy(); mPresenter.detachView(); mPresenter.onViewDestroy(); } @Override protected void onStop() { super.onStop(); mPresenter.OnViewStop(); } @Override protected void attachBaseContext(Context newBase) { super.attachBaseContext(IconicsContextWrapper.wrap(newBase)); } protected T getPresenter() { return mPresenter; } protected abstract T creatPresenter(); public Handler getHandler() { return mHandler; } protected void initToolbar() { } }