MainActivty为什么一定要继承BaseActivity后,然后BaseActivity才能收到广播,假如让MainActivity继承AppCompatActivity就收不到广播,这是什么原因导致的?
在安卓开发中,我们通常都会建一个BaseActivity继承Activity,而我们其他的Activity只要继承BaseActivity就可以,那么BaseActivity到底有什么作用呢?很简单,开发中我们经常都要获取屏幕的宽高,但是如果有多个Activity都需要获取屏幕的宽高呢?那每个Activity都要重复获取,多了很多不必要的代码,这时候就需要用到BaseActivity了。
当然BaseActivity可不止有这个作用,在开发中,也有一个需求,就是我们无论在哪个界面,有时候用户需要直接退出所有Activity,又该如何完成呢?这时候也需要用到BaseActivity。
我们再想想,在Activity中Intent是使用的非常频繁的,如果要传递数据,而如果Activity太多,且有同时几个Activity同时向一个Activity传递数据,我们又该如何分辨哪个数据是从哪个Activity传递过来的呢,BaseActivity又派上用场了。
因为在这BaseActivity定义的广播,必须继承BaseActivity才能生效
因为方法定义在了BaseActivity里面,如果继承AppCompatActivity是找不到这个方法的
感觉学习安卓之前,还是要学好java,要理解什么叫继承。 继承就是子类继承父类的一些行为,你的广播接收器是定义在BaseActivity的,当你的子类继承BaseActivity的时候,相当于也继承了这个广播接收器。所以等价于,你继承了AppCompatActivity然后再定义一个相同的广播接收器。