1.有时候,我们可能要接手一份别人写的代码,阅读别人的代码时有个很头疼的问题,就是当你需要在某个界面上修改一些非常简单的东西,却半天找不到这个界面对应的活动是哪一个。
技巧:
在原项目的基础上修改,首先->新建一个BasaActivity类
右击包->New->Java Class->在弹出窗口输入BaseActivity
然后让BaseActivity继承自AppCompatActiity,并重写onCreate()方法
在onCreate()方法中获取了当前实例的类名,并通过Log打印出来
接下来我们需要让BaseActivity成为项目中所有活动的父类。修改各个活动的继承结构,让他们不再继承自AppCompatActivity而是继承自BaseActivity。而由于BaseActivity有事继承自AppCompatActivity的,所以项目中所有的活动现有的功能并不受影响,仍可完全继承了Activity中的所有特性。
演示如下:
2.如果我们的程序需要一个注销或者退出的功能
思路:只需要一个专门的集合类对所有的活动进行管理就可以了-->创建活动管理器(ActivityCollector类)
在活动管理器中,我们通过一个List来暂存活动,然后提供了addActivity()方法用于向List中添加一个活动,提供了一个removeActivity()方法用于从List中移除活动,最后提供了一个finishAll()方法用于将List中存储的活动全部销毁掉。
在BaseActivity的onCreate()方法中调用了ActivityCollector的addActivity()方法,表明将当前正在创建的活动添加到活动管理器里。然后在BaseActivity中重写onDestroy()方法,并调用了ActivityCollector的removeActivity()方法,表明将一个马上要销毁的活动从活动管理器里移除。
这样,不管在什么地方退出程序,只需调用ActivityCollector.finishAll()方法就可以了。例如在ThirdActivity界面想通过点击按钮直接退出程序:
重新运行程序:观察logcat中的打印信息如下: