AppManager.kt 1.5 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071
  1. package com.cooleshow.base.common
  2. import android.app.Activity
  3. import android.app.ActivityManager
  4. import android.content.Context
  5. import java.util.*
  6. /*
  7. Activity管理器
  8. */
  9. class AppManager private constructor(){
  10. private val activityStack:Stack<Activity> = Stack()
  11. companion object {
  12. val instance:AppManager by lazy { AppManager() }
  13. }
  14. /*
  15. Activity入栈
  16. */
  17. fun addActivity(activity: Activity){
  18. activityStack.add(activity)
  19. }
  20. /*
  21. Activity出栈
  22. */
  23. fun finishActivity(activity: Activity){
  24. activity.finish()
  25. activityStack.remove(activity)
  26. }
  27. /*
  28. 获取当前栈顶
  29. */
  30. fun currentActivity():Activity{
  31. return activityStack.lastElement()
  32. }
  33. /*
  34. 清理栈
  35. */
  36. fun finishAllActivity(){
  37. for (activity in activityStack){
  38. activity.finish()
  39. }
  40. activityStack.clear()
  41. }
  42. /*
  43. 退出应用程序
  44. */
  45. fun exitApp(context:Context){
  46. finishAllActivity()
  47. val activityManager = context.getSystemService(Context.ACTIVITY_SERVICE) as ActivityManager
  48. activityManager.killBackgroundProcesses(context.packageName)
  49. System.exit(0)
  50. }
  51. /**
  52. * 结束当前Activity(堆栈中最后一个压入的)
  53. */
  54. fun getTopActivity(): Activity? {
  55. var activity: Activity? = null
  56. if (activityStack!= null && !activityStack.isEmpty()) {
  57. activity = activityStack.lastElement()
  58. }
  59. return activity
  60. }
  61. }