android baseactivity 网络封装,详解Android封装一个全局的BaseActivity

本文探讨了在Android开发中如何封装一个BaseActivity,减少代码重复,提高开发效率。介绍了BaseActivity的特点,如统一管理、代码封装,并展示了具体实现代码,包括生命周期方法、工具方法。同时,文章提醒注意避免BaseActivity过于臃肿以及Dialog使用中的潜在问题。
摘要由CSDN通过智能技术生成

1.前言

对于一个Android开发者来说,每一个页面都继承一个单独的系统Activity,有时候会带来很多不必要的困扰。比如:每一个页面会有重复的代码,阅读起来麻烦;每一次写新的页面功能总要打开原来的页面代码拷贝一部分过来;有时候代码调试排查问题也不方便等等。

如果你的项目里面没有将Activity都继承自一个自己封装的BaseActivity、或者针对自己封装的BaseActivity觉得还不够完善的,这篇博客可能会对你有帮助!

2.特点

封装:将所有Activity都用到的一部分代码封装到一个统一管理的Activity类(后面全部起名叫BaseActivity),然后由这个BaseActivity继承自Android系统的AppCompatActivity(一般是这个)。

继承:页面上用到的Activity都继承自我们的自己BaseActivity,BaseActivity封装的方法在Activity内直接调用。

3.代码及说明

3.1.优缺点

优点:减少了代码的重复,提高了写代码的效率、以及提高了代码的维护性

缺点:不要任何代码都放在BaseActivity,那样可能会导致BaseActivity过于臃肿,不利于代码的阅读和维护,甚至出现App奔溃

下面会讨论哪些代码应该放在BaseActivity里面,哪些需要谨慎

3.2.代码

下面我贴一份我自己封装的BaseActivity,在代码中和代码下面做了解释:

public abstract class BaseActivity extends AppCompatActivity {

public Activity mActivity;

private Unbinder mUnbinder;

private static float sNoncompatDensity;

private static float sNoncompatScaledDensity;

private MaterialDialog mDialog;

@Override

protected void onCreate(@Nullable Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

onAdjustLayout();

setContentView(setContentLayout());

//这里的是初始化绑定ButterKnife,在onDestory做了销毁

mUnbinder = ButterKnife.bind(this);

this.mActivity = this;

//统一将一个activity添加到一个集合里面

AppManager.getInstance().addActivity(mActivity);

initToolBar();

initPresenter();

initData(savedInstanceState);

Log.e("app", this.getClass().getSimpleName() + "------onCreate");

}

@Override

protected void onStart() { </

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值