haijiang
2018-06-25 586f13d3aa93fc3fdfed65021b1a17a17acf3321
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
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
package com.moral.andbrickslib.utils;
 
import android.app.Activity;
import android.content.Context;
import android.text.TextUtils;
 
import java.util.Iterator;
import java.util.Stack;
 
/**
 * Activity管理类
 * Created by hjzhang on 2016/3/15.
 */
public class ActivityManager {
    private static Stack<Activity> activityStack;
    private static ActivityManager instance;
 
    private ActivityManager() {
    }
 
    public static ActivityManager getActivityManager() {
        if(instance == null) {
            instance = new ActivityManager();
        }
        return instance;
    }
 
    /**
     * Activity进栈
     */
    public void addActivity(Activity activity) {
        if(activityStack == null) {
            activityStack = new Stack();
        }
 
        activityStack.add(activity);
    }
 
    /**
     * 返回当前Activity
     */
    public Activity currentActivity() {
        if(activityStack == null) {
            return null;
        } else {
            Activity activity = (Activity)activityStack.lastElement();
            return activity;
        }
    }
 
    /**
     * 退出当前Activity
     */
    public void finishActivity() {
        if(activityStack != null) {
            Activity activity = (Activity)activityStack.lastElement();
            this.finishActivity(activity);
        }
    }
 
    /**
     * 根据activity实例退出
     * @param activity
     */
    public void finishActivity(Activity activity) {
        if(activityStack != null) {
            if(activity != null) {
                activityStack.remove(activity);
                activity.finish();
                activity = null;
            }
 
        }
    }
 
    /**
     * 根据Activity名称退出
     * @param cls
     */
    public void finishActivity(Class<?> cls) {
        if(activityStack != null) {
            Iterator iterator = activityStack.iterator();
            while(iterator.hasNext()) {
                Activity activity = (Activity)iterator.next();
                if(activity != null && activity.getClass().equals(cls)) {
                    activity.finish();
                    iterator.remove();
                }
            }
 
        }
    }
 
    public void finishAllActivity() {
        if(activityStack != null) {
            Iterator iterator = activityStack.iterator();
            while(iterator.hasNext()) {
                Activity activity = (Activity)iterator.next();
                if(activity != null && !activity.isFinishing()) {
                    activity.finish();
                }
            }
            activityStack.clear();
        }
    }
 
    public Activity getActivity(String activityName) {
        Iterator iterator = activityStack.iterator();
        Activity activity;
        do {
            if(!iterator.hasNext()) {
                return null;
            }
            activity = (Activity)iterator.next();
        } while(activity == null || !TextUtils.equals(activity.getClass().getName(), activityName));
 
        return activity;
    }
 
    /**
     * 退出app
     * @param context
     */
    public void appExit(Context context) {
        try {
            this.finishAllActivity();
        } catch (Exception var3) {
        }
 
    }
}