Blame view

src/com/ectrip/cyt/utils/ActivitiesManager.java 2.3 KB
3c2353cd   杜方   1、畅游通核销app源码提交;
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
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
  package com.ectrip.cyt.utils;
  
  import java.util.Iterator;
  import java.util.Stack;
  
  import android.app.Activity;
  
  /**
   * activity堆栈管理
   *
   *
   */
  public class ActivitiesManager {
  
  	private static final String TAG = "ActivitiesManager";
  	private static Stack<Activity> mActivityStack;
  	private static ActivitiesManager mActivitiesManager;
  
  	private ActivitiesManager() {
  
  	}
  
  	public static ActivitiesManager getInstance() {
  		if (null == mActivitiesManager) {
  			mActivitiesManager = new ActivitiesManager();
  			if (null == mActivityStack) {
  				mActivityStack = new Stack<Activity>();
  			}
  		}
  		return mActivitiesManager;
  	}
  
  	public int stackSize() {
  		return mActivityStack.size();
  	}
  
  	public Activity getCurrentActivity() {
  		Activity activity = null;
  
  		try {
  			activity = mActivityStack.lastElement();
  		} catch (Exception e) {
  			return null;
  		}
  
  		return activity;
  	}
  
  	public void popActivity() {
  		Activity activity = mActivityStack.lastElement();
  		if (null != activity) {
  			LogUtil.i(TAG, "popActivity-->"
  					+ activity.getClass().getSimpleName());
  			activity.finish();
  			mActivityStack.remove(activity);
  			activity = null;
  		}
  	}
  
  	public void popActivity(Activity activity) {
  		if (null != activity) {
  			LogUtil.i(TAG, "popActivity-->"
  					+ activity.getClass().getSimpleName());
  			// activity.finish();
  			mActivityStack.remove(activity);
  			activity = null;
  		}
  	}
  
  	public void pushActivity(Activity activity) {
  		mActivityStack.add(activity);
  		LogUtil.i(TAG, "pushActivity-->" + activity.getClass().getSimpleName());
  	}
  
  	public void popAllActivities() {
  		while (!mActivityStack.isEmpty()) {
  			Activity activity = getCurrentActivity();
  			if (null == activity) {
  				break;
  			}
  			activity.finish();
  			popActivity(activity);
  		}
  	}
  
  	public void popSpecialActivity(Class<?> cls) {
  		try {
  			Iterator<Activity> iterator = mActivityStack.iterator();
  			Activity activity = null;
  			while (iterator.hasNext()) {
  				activity = iterator.next();
  				if (activity.getClass().equals(cls)) {
  					activity.finish();
  					iterator.remove();
  					activity = null;
  				}
  			}
  		} catch (Exception e) {
  
  		}
  	}
  
  	public void peekActivity() {
  		for (Activity activity : mActivityStack) {
  			if (null == activity) {
  				break;
  			}
  			LogUtil.i(TAG, "peekActivity()-->"
  					+ activity.getClass().getSimpleName());
  		}
  	}
  
  }