package com.xw.common.utils
|
|
import android.app.Activity
|
import android.content.Context
|
import android.os.Process
|
import kotlin.collections.ArrayList
|
import kotlin.system.exitProcess
|
|
/**
|
* Activity出入栈管理类
|
*/
|
object ActivityManager {
|
/**
|
* 用于存储和统一销毁一套操作的Activities
|
*/
|
private var activities: MutableList<Activity> = ArrayList()
|
|
|
fun currentActivity(): Activity? {
|
return if (activities.isNotEmpty())
|
activities.last()
|
else null
|
}
|
|
/**
|
* 将创建的activity入栈管理
|
*
|
* @param activity
|
*/
|
@JvmStatic
|
fun addActivity(activity: Activity) {
|
activities.add(activity)
|
}
|
|
/**
|
* 将该activity出栈
|
*
|
* @param activity
|
*/
|
@JvmStatic
|
fun removeActivity(activity: Activity?) {
|
if (activity != null) {
|
activities.remove(activity)
|
activity.finish()
|
}
|
}
|
|
/**
|
* 结束指定类名的Activity
|
*/
|
fun removeActivity(cls: Class<*>) {
|
activities?.let {
|
for (activity in it) {
|
if (activity.javaClass == cls) {
|
removeActivity(activity)
|
break
|
}
|
}
|
}
|
}
|
|
/**
|
* 结束所有activity
|
*/
|
fun finishAll() {
|
finishAllNoExit()
|
Process.killProcess(Process.myPid())
|
}
|
|
/**
|
* 结束所有页面
|
*/
|
fun finishAllNoExit() {
|
for (activity in activities) {
|
if (!activity.isFinishing) {
|
activity.finish()
|
}
|
}
|
activities.clear()
|
}
|
|
/**
|
* 退出程序并杀死任务栈
|
* @param context
|
*/
|
fun exitApp(context: Context?) {
|
// 结束进程
|
exitProcess(0)
|
}
|
}
|