Files
StallDualScreen/app/src/main/java/com/sw/dualscreen/utils/ActivityManager.kt
T
2025-11-19 18:35:53 +08:00

57 lines
1.2 KiB
Kotlin

package com.sw.dualscreen.utils
import android.app.Activity
import android.os.Process
import java.util.Stack
object ActivityManager {
private val activityStack = Stack<Activity>()
// 添加Activity到栈
fun addActivity(activity: Activity) {
activityStack.add(activity)
}
// 移除指定Activity
fun removeActivity(activity: Activity) {
activityStack.remove(activity)
}
// 获取当前Activity
fun currentActivity(): Activity? {
return if (activityStack.isEmpty()) null else activityStack.lastElement()
}
// 结束指定Activity
fun finishActivity(activity: Activity) {
if (!activity.isFinishing) {
activity.finish()
}
}
// 结束所有Activity
fun finishAllActivity() {
activityStack.forEach {
if (!it.isFinishing) {
it.finish()
}
}
activityStack.clear()
}
// 退出应用程序
fun exitApp() {
finishAllActivity()
Process.killProcess(Process.myPid())
}
fun getActivityStack(): Stack<Activity>{
return activityStack
}
fun isEmpty() : Boolean {
return activityStack.isEmpty()
}
}