package com.gnod.geekr.app;
import java.util.Stack;
import com.gnod.geekr.tool.manager.SettingManager;
import android.app.Activity;
import android.content.Context;
import android.util.Log;
/**
* Activity 管理类
* @author Gnod
*
*/
public class AppManager {
private static Stack<Activity> activityStack;
private static AppManager instance;
private AppManager(){
}
public static AppManager getInstance() {
if(instance == null)
instance = new AppManager();
return instance;
}
public void addActivity(Activity ac) {
if(activityStack == null)
activityStack = new Stack<Activity>();
activityStack.add(ac);
}
public Activity getCurrentActivity(){
if(activityStack == null)
return null;
return activityStack.lastElement();
}
public void finishActivity(Activity ac) {
if(activityStack != null && ac != null){
activityStack.remove(ac);
ac.finish();
ac = null;
}
}
public void finishActivity() {
if(activityStack != null) {
Activity ac = activityStack.lastElement();
finishActivity(ac);
}
}
public void finishActivity(Class<?> cls) {
if(activityStack == null)
return;
for(Activity ac: activityStack){
if(ac.getClass().equals(cls)){
finishActivity(ac);
}
}
}
public void finishAllActivity(){
if(activityStack == null)
return;
Activity ac;
for(int i = 0, size = activityStack.size(); i < size; i ++) {
ac = activityStack.get(i);
if(ac != null) {
ac.finish();
}
}
activityStack.clear();
}
public void appExit(Context context) {
try {
AppConfig.sImageFetcher.closeCache();
finishAllActivity();
System.exit(0);
} catch (Exception e) {
Log.e("AppManager", "exit error:" + e.getMessage());
}
}
}