一個全聚德activity manager類
public class AppManager {
private static Stack<Activity> activityStack;
private static AppManager instance;
public AppManager() {
}
/**
* 單一實例
*/
public static AppManager getAppManager() {
if(instance==null) {
instance=new AppManager();
}
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){
if(activity!=null&&!activity.isFinishing()){
activityStack.remove(activity);
activity.finish();
activity=null;
}
}
/**
* 結束指定類名的activity
*/
public void finishActivity(Class<?> cls){
for(Activity activity:activityStack){
if(activity.getClass().equals(cls)){
finishActivity(activity);
break;
}
}
}
/**
* 結束所有的activity
*/
public void finishAllActivity(){
for(int i=0,size=activityStack.size();i<size;i++){
if(null!=activityStack.get(i)){
finishActivity(activityStack.get(i));
break;
}
}
activityStack.clear();
}
/**
* 獲取指定的Activity
*
*/
public static Activity getActivity(Class<?> cls) {
if (activityStack != null)
for (Activity activity : activityStack) {
if (activity.getClass().equals(cls)) {
return activity;
}
}
return null;
}
/**
* 退出應用程序
*/
public void AppExit(Context context){
finishAllActivity();
//殺死應用進程
android.os.Process.killProcess(Process.myPid());
System.exit(0);
}
}