安卓开发中Activity抽象基类BaseActivity的编写

原创 2016年08月28日 20:57:57

安卓开发中经常要写一个Activity的抽象基类,以便于将一些基本的功能封装,减少代码量。下面的BaseActivity则是一个非常简单易用的抽象基类。
大家可以根据自己要写的app进行适应性修改。

public abstract class BaseActivity extends AppCompatActivity {
    /** 是否状态栏透明 **/
    private boolean isSetStatusBar = false;
    /** 是否允许全屏 **/
    private boolean mAllowFullScreen = false;
    /** 是否禁止旋转屏幕 **/
    private boolean isAllowScreenRoate = false;
    /** 日志输出标志 **/
    protected final String TAG = this.getClass().getSimpleName();



    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        Log.d(TAG, "BaseActivity-->onCreate()");

        if (mAllowFullScreen) {
            requestWindowFeature(Window.FEATURE_NO_TITLE);
        }
        if (isSetStatusBar) {
            steepStatusBar();
        }
        if (!isAllowScreenRoate) {
            setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);
        }
    }

    /**
     * [沉浸状态栏]
     */
    private void steepStatusBar() {
        if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT) {
            // 透明状态栏
            getWindow().addFlags(
                    WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS);
            // 透明导航栏
            getWindow().addFlags(
                    WindowManager.LayoutParams.FLAG_TRANSLUCENT_NAVIGATION);
        }
    }


    @Override
    protected void onRestart() {
        super.onRestart();
        Log.d(TAG, "onRestart()");
    }

    @Override
    protected void onStart() {
        super.onStart();
        Log.d(TAG, "onStart()");
    }

    @Override
    protected void onResume() {
        super.onResume();
        Log.d(TAG, "onResume()");
    }

    @Override
    protected void onPause() {
        super.onPause();
        Log.d(TAG, "onPause()");
    }

    @Override
    protected void onStop() {
        super.onStop();
        Log.d(TAG, "onStop()");
    }

    @Override
    protected void onDestroy() {
        super.onDestroy();
        Log.d(TAG, "onDestroy()");
    }

    /**
     * [是否允许全屏]
     *
     * @param allowFullScreen
     */
    public void setAllowFullScreen(boolean allowFullScreen) {
        this.mAllowFullScreen = allowFullScreen;
    }

    /**
     * [是否设置沉浸状态栏]
     *
     * @param isSetStatusBar
     */
    public void setSteepStatusBar(boolean isSetStatusBar) {
        this.isSetStatusBar = isSetStatusBar;
    }

    /**
     * [是否允许屏幕旋转]
     *
     * @param isAllowScreenRoate
     */
    public void setScreenRoate(boolean isAllowScreenRoate) {
        this.isAllowScreenRoate = isAllowScreenRoate;
    }
版权声明:本文为博主原创文章,未经博主允许不得转载。

Android App框架设计之编写基类BaseActivity

Android App框架设计之编写基类BaseActivity编写基类BaseActivity - OOP里面子类里面能够共享父类的方法,提高代码的可复用性 - 基类的编写要根据实际项目的情...
  • birdsaction
  • birdsaction
  • 2015年05月20日 18:16
  • 36718

【Android实战】----从Activity入手(编写BaseActivity)

关于Android实战篇系列,一直不知从何入手写。基本概念介绍对于实战篇系列来讲没有太大意义,本系列一如Spring实战篇系列所倡导的理念一样:知其然知其所以然,难点、疑点一网打尽(有点狂妄了)。还是...
  • honghailiang888
  • honghailiang888
  • 2017年02月07日 15:55
  • 2110

抽取ButterKnife到BaseActivity

1.ButterKnife注解框架,大大减小工作量,点我学习ButterKbife使用2.抽取到BaseActivity刚开始在BaseActivity的onCreate方法中添加ButterKnif...
  • qq_30124547
  • qq_30124547
  • 2016年11月09日 19:40
  • 1376

抽象类BaseActivity的封装

将BaseActivity设置为抽象类,其他子Activity继承BaseActivity,优点: 1)简化子类代码复杂度(共性方法) 通过继承机制,在基类中封装好默认需实现的共性方法,可以减少子类编...
  • chenrushui
  • chenrushui
  • 2017年05月10日 11:40
  • 995

封装一个BaseActivity并实现沉浸式状态栏

早就听闻沉浸式状态栏的大名..但是一直不太明白那究竟是什么东西,所以就有意去搜索了一下,结果令我大失所望... 就是一个自定义view能够设置透明 或其他颜色来替换状态栏或者说成是遮盖住状态栏比较合适...
  • qq_37842258
  • qq_37842258
  • 2017年08月22日 14:13
  • 376

Activity继承BaseActivity的使用(有相同不状态栏时很适用)

当你的项目中的很多activity都共用一个状态栏或者某一个布局的时候,就可以将它提出来放在BaseActivity中,这样就避免你每个activity中都写一遍。希望这篇文章能对你有帮助...
  • Shirly_YY
  • Shirly_YY
  • 2017年03月10日 14:28
  • 508

Android结合ButterKnife创建自己的BaseActivity(兼容6.0)

在Android开发中,我们需要创建一个BaseActivity来方便对APP中所有的activity进行统一操作。今天我们就来说说如何结合ButterKnife来打造一个加强版的BaseActivi...
  • Leavessilent
  • Leavessilent
  • 2017年03月22日 11:55
  • 1735

BaseActivity的重要性

我们一般的情况下要建立一个基类Activity然后让别的Activity来继承于它,但是我们可以使用一些小技巧来简便我们对这个BaseActivity的使用,如下: public abstract...
  • caizehui
  • caizehui
  • 2015年07月29日 15:44
  • 1135

Android MainActivity如何加载BaseActivity的布局

BaseActivity MainActivity
  • u013922681
  • u013922681
  • 2016年03月13日 13:44
  • 1671

(一) 抽取Activity基类--BaseActivity

为什么要抽取Activity基类?主要原因有两个: 第一个原因是方便代码编写,减少重复代码,快速开发。 第二个原因是优化代码结构,降低耦合度,方便修改。 还有一些其他原因:提高代码可读性,代码显...
  • RaphetS
  • RaphetS
  • 2016年05月05日 23:24
  • 5260
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:安卓开发中Activity抽象基类BaseActivity的编写
举报原因:
原因补充:

(最多只允许输入30个字)