随时随地的退出程序
如果从初始界面跳转了很多个内嵌页面,你会发现退出当前程序会非常不方便,不要点击很多次back(点击home之后程序也只为挂起状态);或者需要设置退出当前程序的按钮,这就需要设置一个专门的集合对Activity进行管理。
一、创建ActivityCollector集合
新建一个ActivityCollector作为Activity的集合,注意本类不需要在AndroidManifest.xml中注册。
object ActivityCollector {
//注意这里是object不是class
private val activities = ArrayList<Activity>() //创建一个单例类
// 用于在ArrayList中添加Activity
fun addActivity(activity: Activity){
activities.add(activity)
}
// 用于在ArrayList中移除Activity
fun removeActivity(activity: Activity){
activities.remove(activity)
}
// 用于将存储在ArrayList的Activity全部移除
fun finishAll() {
for (activity in activities){
if (!activity.isFinishing){
activity.finish()
}
}
activities.clear()
}
}
二、修改BaseActivity
前面一片文章中,创建了BaseActivity主要用于被Activity继承用于显示当前的Activity,现在也在BaseActivity添加ArrayList的addActivity()、removeActivity()等信息。
open class BaseActivity : AppCompatActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
//用于显示当前Activity