57 lines
1.2 KiB
Kotlin
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()
|
|
}
|
|
|
|
} |