管理Activity

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

 



你可能感兴趣的:(Activity)