Activity管理和应用程序的退出(推荐使用stack)

本文介绍了一个用于管理Android应用程序Activity的实用类。该类提供了一系列方法来实现Activity的添加、获取、关闭等功能,并能帮助开发者方便地管理Activity的生命周期及整体的应用退出。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

  1. /**  
  2.  * 应用程序Activity管理类:用于Activity管理和应用程序退出  
  3.  */  
  4.   
  5. public class AppManager {  
  6.       
  7.     private static Stack<Activity> activityStack;  
  8.     private static AppManager instance;  
  9.     private AppManager() {  
  10.     }  
  11.     /**  
  12.      * 单一实例  
  13.      */  
  14.     public static AppManager getAppManager() {  
  15.         if (instance == null) {  
  16.             instance = new AppManager();  
  17.         }  
  18.         return instance;  
  19.     }  
  20.     /**  
  21.      * 添加Activity到堆栈  
  22.      */  
  23.     public void addActivity(Activity activity) {  
  24.         if (activityStack == null) {  
  25.             activityStack = new Stack<Activity>();  
  26.         }  
  27.         activityStack.add(activity);  
  28.     }  
  29.   
  30.     /**  
  31.      * 获取当前Activity(堆栈中最后一个压入的)  
  32.      */  
  33.     public Activity currentActivity() {  
  34.         Activity activity = activityStack.lastElement();  
  35.         return activity;  
  36.     }  
  37.   
  38.     /**  
  39.      * 结束当前Activity(堆栈中最后一个压入的)  
  40.      */  
  41.     public void finishActivity() {  
  42.         Activity activity = activityStack.lastElement();  
  43.         finishActivity(activity);  
  44.     }  
  45.   
  46.     /**  
  47.      * 结束指定的Activity  
  48.      */  
  49.     public void finishActivity(Activity activity) {  
  50.         if (activity != null) {  
  51.             activityStack.remove(activity);  
  52.             activity.finish();  
  53.             activity = null;  
  54.         }  
  55.     }  
  56.   
  57.     /**  
  58.      * 结束指定类名的Activity  
  59.      */  
  60.     public void finishActivity(Class<?> cls) {  
  61.         for (Activity activity : activityStack) {  
  62.             if (activity.getClass().equals(cls)) {  
  63.                 finishActivity(activity);  
  64.             }  
  65.         }  
  66.     }  
  67.   
  68.     /**  
  69.      * 结束所有Activity  
  70.      */  
  71.     public void finishAllActivity() {  
  72.         for (int i = 0size = activityStack.size(); i < size; i++) {  
  73.             if (null != activityStack.get(i)) {  
  74.                 activityStack.get(i).finish();  
  75.             }  
  76.         }  
  77.         activityStack.clear();  
  78.     }  
  79.   
  80.       
  81.     public void AppExit(Context context) {  
  82.         try {  
  83.             finishAllActivity();  
  84.             ActivityManager activityMgr = (ActivityManager) context  
  85.                     .getSystemService(Context.ACTIVITY_SERVICE);  
  86.             activityMgr.restartPackage(context.getPackageName());  
  87.             System.exit(0);  
  88.         } catch (Exception e) {  
  89.         }  
  90.     }  
  91.   
  92. }  
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值