Initial commit
This commit is contained in:
@@ -0,0 +1,84 @@
|
||||
package com.mogo.utils;
|
||||
|
||||
import android.app.Activity;
|
||||
|
||||
import java.util.ArrayDeque;
|
||||
import java.util.Deque;
|
||||
import java.util.Iterator;
|
||||
|
||||
public class ActivityStack {
|
||||
private static final Deque< Activity > ACTIVITY_STACK = new ArrayDeque<>();
|
||||
|
||||
public static synchronized void addActivity( Activity activity) {
|
||||
if(activity != null){
|
||||
ACTIVITY_STACK.offer(activity);
|
||||
}
|
||||
}
|
||||
|
||||
public static synchronized Activity currentActivity() {
|
||||
return ACTIVITY_STACK.peekLast();
|
||||
}
|
||||
|
||||
public static synchronized void finishCurrentActivity() {
|
||||
Activity activity = ACTIVITY_STACK.pop();
|
||||
if (!activity.isFinishing()) {
|
||||
activity.finish();
|
||||
}
|
||||
}
|
||||
|
||||
public static synchronized void finishActivity( Activity activity) {
|
||||
ACTIVITY_STACK.remove(activity);
|
||||
if (!activity.isFinishing()) {
|
||||
activity.finish();
|
||||
}
|
||||
}
|
||||
|
||||
public static synchronized void finishActivity( Class<? extends Activity > cls) {
|
||||
Iterator< Activity > iterator = ACTIVITY_STACK.iterator();
|
||||
while (iterator.hasNext()) {
|
||||
Activity next = iterator.next();
|
||||
if(next.getClass().equals(cls)){
|
||||
iterator.remove();
|
||||
if(!next.isFinishing()){
|
||||
next.finish();
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public static synchronized void finishActivityExcept( Class<?> cls) {
|
||||
Iterator< Activity > iterator = ACTIVITY_STACK.iterator();
|
||||
while (iterator.hasNext()) {
|
||||
Activity next = iterator.next();
|
||||
if (!next.getClass().equals(cls)) {
|
||||
iterator.remove();
|
||||
if(!next.isFinishing()){
|
||||
next.finish();
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public static synchronized void finishAllActivity() {
|
||||
Iterator< Activity > iterator = ACTIVITY_STACK.iterator();
|
||||
while (iterator.hasNext()) {
|
||||
iterator.remove();
|
||||
Activity next = iterator.next();
|
||||
if(!next.isFinishing()){
|
||||
next.finish();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public static synchronized boolean isActivityExist( Class<? extends Activity > cls){
|
||||
Iterator< Activity > iterator = ACTIVITY_STACK.iterator();
|
||||
while (iterator.hasNext()) {
|
||||
Activity next = iterator.next();
|
||||
if(next.getClass().equals(cls)){
|
||||
return true;
|
||||
}
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
}
|
||||
Reference in New Issue
Block a user