一、使用单例模式创建一个Activity管理对象,该对象中有一个Activity容器(具体实现自己处理,使用LinkedList等)专门负责存储新开启的每一个Activity,并且容易理解、易于操作,非常不错!
ActivityController类(储存每一个Activity,并实现关闭所有Activity的操作)
import android.app.Activity
import java.util.*
object ActivityController {
private val actList = LinkedList<Activity>()
fun addActivity(activity: Activity) {
actList.add(activity)
}
fun removeActivity(activity: Activity) {
actList.remove(activity)
}
fun clearAll() {
actList.forEach {
if (!it.isFinishing) {
it.finish()
}
}
}
fun getSize(): Int {
return actList.size
}
}
二、在每一个Activity中的onCreate方法里添加该Activity到ActivityController 对象实例容器中
ActivityController.addActivity(this)
三、在需要结束所有Activity的时候调用clearAll方法
ActivityController.clearAll()