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 = 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) } }