AppManager类,管理Activity和App

  1. @Override  
  2. protected void onCreate(Bundle savedInstanceState) {  
  3.     super.onCreate(savedInstanceState);  
  4.     // 添加Activity到堆栈  
  5.     AppManager.getAppManager().addActivity(this);  
  6. }  
  7.   
  8. @Override  
  9. protected void onDestroy() {  
  10.     super.onDestroy();  
  11.     // 结束Activity&从堆栈中移除  
  12.     AppManager.getAppManager().finishActivity(this);  
  13. }
  14. * 应用程序Activity管理类:用于Activity管理和应用程序退出 
    1.  * @author liux (http://my.oschina.net/liux) 
    2.  * @version 1.0 
    3.  * @created 2012-3-21 
    4.  */  
    5. public class AppManager {  
    6.       
    7.     private static Stack<Activity> activityStack;  
    8.     private static AppManager instance;  
    9.       
    10.     private AppManager(){}  
    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.      * 获取当前Activity(堆栈中最后一个压入的) 
    31.      */  
    32.     public Activity currentActivity(){  
    33.         Activity activity=activityStack.lastElement();  
    34.         return activity;  
    35.     }  
    36.     /** 
    37.      结束当前Activity(堆栈中最后一个压入的) 
    38.      */  
    39.     public void finishActivity(){  
    40.         Activity activity=activityStack.lastElement();  
    41.         finishActivity(activity);  
    42.     }  
    43.     /** 
    44.      * 结束指定的Activity 
    45.      */  
    46.     public void finishActivity(Activity activity){  
    47.         if(activity!=null){  
    48.             activityStack.remove(activity);  
    49.             activity.finish();  
    50.             activity=null;  
    51.         }  
    52.     }  
    53.     /** 
    54.      * 结束指定类名的Activity 
    55.      */  
    56.     public void finishActivity(Class<?> cls){  
    57.         for (Activity activity : activityStack) {  
    58.             if(activity.getClass().equals(cls) ){  
    59.                 finishActivity(activity);  
    60.             }  
    61.         }  
    62.     }  
    63.     /** 
    64.      * 结束所有Activity 
    65.      */  
    66.     public void finishAllActivity(){  
    67.         for (int i = 0, size = activityStack.size(); i < size; i++){  
    68.             if (null != activityStack.get(i)){  
    69.                 activityStack.get(i).finish();  
    70.             }  
    71.         }  
    72.         activityStack.clear();  
    73.     }  
    74.     /*
    75.      * 退出应用程序 
    76.      */  
    77.     public void AppExit(Context context) {  
    78.         try {  
    79.             finishAllActivity();  
    80.             ActivityManager activityMgr= (ActivityManager) context.getSystemService(Context.ACTIVITY_SERVICE);  
    81.             activityMgr.restartPackage(context.getPackageName());  
    82.             System.exit(0);  
    83.         } catch (Exception e) { }  
    84.     }  
    85. }  
posted @ 2017-07-11 15:26  让学习如呼吸一般自然  阅读(2444)  评论(0编辑  收藏  举报