ActivityUtil.java
3.3 KB
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
132
133
134
135
136
137
138
139
140
package com.xdy.util;
import android.app.Activity;
import android.content.Context;
import android.content.Intent;
import java.util.Stack;
/**
* 应用程序Activity管理类:用于Activity管理和应用程序退出
* @version 1.0
* @created 2012-3-21
*/
public class ActivityUtil {
private static Stack<Activity> activityStack;
private static ActivityUtil instance;
public interface IBuilder {
void with(Intent intent);
}
private ActivityUtil() {
}
/**
* 单一实例
*/
public static ActivityUtil getInstance() {
if (instance == null) {
instance = new ActivityUtil();
}
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();
finishActivity(activity);
}
/**
* 结束指定的Activity
*/
public static void finishActivity(Activity activity) {
if (activity != null) {
activityStack.remove(activity);
activity.finish();
}
}
/**
* 结束指定类名的Activity
*/
public static void finishActivity(Class<?> cls) {
for (Activity activity : activityStack) {
if (activity.getClass().equals(cls)) {
finishActivity(activity);
return;
}
}
}
/**
* 结束所有Activity
*/
public static void finishAllActivity() {
for (int i = 0, size = activityStack.size(); i < size; i++) {
if (null != activityStack.get(i)) {
activityStack.get(i).finish();
}
}
activityStack.clear();
}
/**
* 简单开启Activity的方法
* @param context
* @param cls
*/
public static void startToActivity(Context context, Class cls) {
startToActivity(context, cls, null);
}
/**
* 简单开启Activity的方法,带Intent参数
* @param context
* @param cls
*/
public static void startToActivity(Context context, Class cls, IBuilder builder) {
Intent intent = new Intent(context, cls);
if (builder != null) {
builder.with(intent);
}
context.startActivity(intent);
}
/**
* @param context
* @param cls
*/
public static void startToActivityForResult(Activity context, Class cls, int requestCode) {
startToActivityForResult(context, cls, requestCode, null);
}
/**
* @param context
* @param cls
* @param requestCode
* @param builder
*/
public static void startToActivityForResult(Activity context, Class cls, int requestCode, IBuilder builder) {
Intent intent = new Intent(context, cls);
if (builder != null) {
builder.with(intent);
}
context.startActivityForResult(intent, requestCode);
}
}