package com.pan.simplepicture.view.activity; import android.annotation.TargetApi; import android.content.Intent; import android.content.res.Resources; import android.os.Build; import android.os.Bundle; import android.support.v7.app.AppCompatActivity; import android.support.v7.widget.Toolbar; import android.view.LayoutInflater; import android.view.MenuItem; import android.view.View; import android.view.ViewGroup; import android.view.WindowManager; import android.widget.TextView; import com.pan.simplepicture.R; import com.pan.simplepicture.inter.IBase; import com.pan.simplepicture.presenter.BasePresenter; import com.pan.simplepicture.utils.AppManager; import com.pan.simplepicture.utils.ContextUtils; import com.pan.simplepicture.utils.SystemBarTintManager; import com.pan.simplepicture.view.impl.IBaseView; import com.umeng.analytics.MobclickAgent; import butterknife.ButterKnife; public abstract class BaseActivity<T extends BasePresenter<IBaseView>> extends AppCompatActivity implements IBase { /** * 主线程 */ private long mUIThreadId; public void setActionBar() { } public void getIntentValue() { } public void onResume() { super.onResume(); MobclickAgent.onPageStart(this.getClass().getSimpleName()); MobclickAgent.onResume(this); } public void onPause() { super.onPause(); MobclickAgent.onPageEnd(this.getClass().getSimpleName()); MobclickAgent.onPause(this); } /** * 是否设置沉浸式 * * @return */ protected boolean isSetStatusBar() { return false; } protected BasePresenter mPresenter; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); mUIThreadId = android.os.Process.myTid(); AppManager.getAppManager().addActivity(this); mPresenter = getPresenter(); if (mPresenter != null && this instanceof IBaseView) { mPresenter.attach((IBaseView) this); } initWindow(); getIntentValue(); mRootView = createView(null, null, savedInstanceState); setContentView(mRootView); mToolbar = (Toolbar) findViewById(getToolBarId()); setSupportActionBar(mToolbar); setActionBar(); bindView(savedInstanceState); } public abstract int getToolBarId(); public Toolbar getToolbar() { return mToolbar; } private Toolbar mToolbar; protected View mRootView; @Override public View createView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { View view = ContextUtils.inflate(this, getContentLayout()); ButterKnife.bind(this, view); return view; } @Override public View getView() { return mRootView; } @Override protected void onNewIntent(Intent intent) { mUIThreadId = android.os.Process.myTid(); super.onNewIntent(intent); } /** * 获取UI线程ID * * @return UI线程ID */ public long getUIThreadId() { return mUIThreadId; } @TargetApi(19) private void initWindow() { if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT && isSetStatusBar()) { getWindow().addFlags( WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS); tintManager = new SystemBarTintManager(this); tintManager.setStatusBarTintEnabled(true); tintManager.setStatusBarTintResource(R.color.material_drawer_primary); } } private SystemBarTintManager tintManager; protected void setStatusBarTintRes(int color) { if (tintManager != null) { tintManager.setStatusBarTintResource(color); } } @Override public boolean onOptionsItemSelected(MenuItem item) { switch (item.getItemId()) { case android.R.id.home: onBackPressed(); return true; default: return super.onOptionsItemSelected(item); } } @Override protected void onDestroy() { AppManager.getAppManager().finishActivity(this); if (mPresenter != null && this instanceof IBaseView) { mPresenter.detachView(); mPresenter = null; } super.onDestroy(); } }