package com.blankj.androidutilcode.base; import android.content.Context; import android.os.Build; import android.os.Bundle; import android.support.v7.app.AppCompatActivity; import android.view.LayoutInflater; import android.view.View; import android.view.Window; import android.view.WindowManager; /** * <pre> * author: Blankj * blog : http://blankj.com * time : 2016/10/24 * desc : Activity基类 * </pre> */ public abstract class BaseActivity extends AppCompatActivity implements View.OnClickListener { /** * 是否全屏 */ private boolean isFullScreen = false; /** * 是否沉浸状态栏 */ private boolean isSteepStatusBar = false; /** * 当前Activity渲染的视图View */ protected View contentView; /** * 上次点击时间 */ private long lastClick = 0; protected BaseActivity mActivity; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); try { mActivity = this; Bundle bundle = getIntent().getExtras(); initData(bundle); contentView = LayoutInflater.from(this).inflate(bindLayout(), null); if (isFullScreen) { this.getWindow().setFlags( WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN); requestWindowFeature(Window.FEATURE_NO_TITLE); } if (isSteepStatusBar) { if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT) { getWindow().addFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS); getWindow().addFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_NAVIGATION); } } setContentView(contentView); initView(savedInstanceState, contentView); doBusiness(this); } catch (Exception e) { e.printStackTrace(); } } /** * 初始化数据 * * @param bundle 从上个Activity传递过来的bundle */ public abstract void initData(Bundle bundle); /** * 绑定布局 * * @return 布局Id */ public abstract int bindLayout(); /** * 初始化view */ public abstract void initView(Bundle savedInstanceState, final View view); /** * 业务操作 * * @param context 上下文 */ public abstract void doBusiness(Context context); /** * 视图点击事件 * * @param view 视图 */ public abstract void onWidgetClick(View view); /** * 判断是否快速点击 * * @return {@code true}: 是<br>{@code false}: 否 */ private boolean isFastClick() { long now = System.currentTimeMillis(); if (now - lastClick >= 200) { lastClick = now; return false; } return true; } @Override public void onClick(View view) { if (!isFastClick()) onWidgetClick(view); } /** * 设置是否全屏 * * @param isFullScreen 是否全屏 */ public void setFullScreen(boolean isFullScreen) { this.isFullScreen = isFullScreen; } /** * 设置是否沉浸状态栏 * * @param isSteepStatusBar 是否沉浸状态栏 */ public void setSteepStatusBar(boolean isSteepStatusBar) { this.isSteepStatusBar = isSteepStatusBar; } }