BaseActivity设计思路

一、Activity有哪些共同点?

1.是否需要保存当前activity的状态,如果意外关闭了当前的activity,不是通过正常的按返回键,但这是对于嵌入式设备才需要,如果是一般的手机应用则无需保存该状态,因为如果是因为内存不足或者内存泄漏、内存溢出等导致oom而关闭的,直接重新打开程序然后到进入这个activity时候重新onCreate就可以了。

保存状态:可以在BaseActivity定义一个方法beforeContentView(Bundle savedInstanceState),传入onCreate创建时候的Bundle savedInstanceState,在onCreate中调用,让继承BaseActivity的activity去重写,这样子就可以在需要的地方就重写,不需要就不重写。

2.都需要设置页面布局,setContentView(括号内是layout的id)

既然所有的activity都需要加载页面布局,那么可以定义一个抽象方法getLayoutId()来返回这个布局id。(其实我觉得这个完全没必要再定义一个方法,因为这样子还要经过一轮查找才设置进去,感觉多此一举,我直接填入layout的id不是更直接?所以定义的人应该脑子抽了。)

3.ButterKnife.bind(this);

这个在BaseActivity中使用ButterKnife来绑定,这个就非常必要了。能减少其他activity重复书写。

4.初始化数据initData()

所有的activity都需要初始化数据,具体要看这个初始化的是用在全局还是只用在单个activity,如果用在全局就写在所有activity都需要继承的activity内,如果只用在单个activity就只写在该activity内。

初始化数据做什么?

如:初始化当前activity,mActivity=this;

mContext = this;

将当前activity添加到activity管理类中;

获取配置文件管理类、时间管理类、语音辅助类、串口辅助类、数据库辅助类、授权管理类、socket管理类、handler管理类等等。

这些初始化的类就可以在继承的activity中直接使用,不用再获取它的类。

5.初始化view,initView()

做一些每个activity都会触发的事情,比如:长时间不操作设备,然后自动跳转到屏保页面。

6.定义openActivity()打开指定activity,定义closeActivity()关闭指定activity等

1.每个activity肯定都会跳转到其他页面的,所以就可以用openActivity()这个方法打开指定的activity

2.从其他页面返回上一级页面时候需要关闭页面,就可以用closeActivity()这个方法关闭。

7.activity生命周期中需要统一进行的操作,可重写onRestart()、onResume()、onPause()、onDestory()进行配置

8.可重写onBackPressed(),定义返回键

9.可重写dispatchTouchEvent(MotionEvent ev),定义触控屏幕以后事件分发,如点击屏幕以后轮播图消失。

10.其他,如可再写一个activity继承BaseActivity,然后实现某个接口中的方法,或者直接就BaseActivity实现某个接口方法。用来扩展功能?

记录一下思路,免得以后忘记了。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值