33
This commit is contained in:
@@ -0,0 +1,154 @@
|
||||
package cn.shangyu.gdxzExpert.base;
|
||||
|
||||
|
||||
import android.app.Activity;
|
||||
import android.app.ActivityManager;
|
||||
import android.content.Context;
|
||||
|
||||
import java.util.Stack;
|
||||
|
||||
public class AppManager {
|
||||
|
||||
private static Stack<Activity> activityStack;
|
||||
private static AppManager instance;
|
||||
private static Stack<Activity> activityStack1;
|
||||
private static Stack<Activity> activityStack2;
|
||||
|
||||
private 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 void addActivity1(Activity activity){
|
||||
if(activityStack1==null){
|
||||
activityStack1=new Stack<Activity>();
|
||||
}
|
||||
activityStack1.add(activity);
|
||||
}
|
||||
/**
|
||||
* 添加一问多答Activity到堆
|
||||
*/
|
||||
public void addActivity2(Activity activity){
|
||||
if(activityStack2==null){
|
||||
activityStack2=new Stack<Activity>();
|
||||
}
|
||||
activityStack2.add(activity);
|
||||
}
|
||||
|
||||
/**
|
||||
* 结束所有积分Activity
|
||||
*/
|
||||
public void finishAllActivity1(){
|
||||
if (activityStack1!=null) {
|
||||
for (int i = 0, size = activityStack1.size(); i < size; i++){
|
||||
if (null != activityStack1.get(i)){
|
||||
activityStack1.get(i).finish();
|
||||
}
|
||||
}
|
||||
activityStack1.clear();
|
||||
}
|
||||
// android.os.Process.killProcess(android.os.Process.myPid());
|
||||
}
|
||||
/**
|
||||
* 结束所有一问多答Activity
|
||||
*/
|
||||
public void finishAllActivity2(){
|
||||
if (activityStack2!=null) {
|
||||
for (int i = 0, size = activityStack2.size(); i < size; i++){
|
||||
if (null != activityStack2.get(i)){
|
||||
activityStack2.get(i).finish();
|
||||
}
|
||||
}
|
||||
activityStack2.clear();
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取当前Activity(堆栈中最后压入的)
|
||||
*/
|
||||
public Activity currentActivity(){
|
||||
Activity activity=activityStack.lastElement();
|
||||
return activity;
|
||||
}
|
||||
/**
|
||||
* 结束当前Activity(堆栈中最后压入的)
|
||||
*/
|
||||
public void finishActivity(){
|
||||
Activity activity=activityStack.lastElement();
|
||||
finishActivity(activity);
|
||||
}
|
||||
/**
|
||||
* 结束指定的Activity
|
||||
*/
|
||||
public void finishActivity(Activity activity){
|
||||
if(activity!=null&&activityStack!=null){
|
||||
activityStack.remove(activity);
|
||||
activity.finish();
|
||||
activity=null;
|
||||
}
|
||||
}
|
||||
/**
|
||||
* 结束指定的Activity
|
||||
*/
|
||||
public void finishActivity2(Activity activity){
|
||||
if(activity!=null){
|
||||
activityStack2.remove(activity);
|
||||
activity.finish();
|
||||
activity=null;
|
||||
}
|
||||
}
|
||||
/**
|
||||
* 结束指定类名的Activity
|
||||
*/
|
||||
public void finishActivity(Class<?> cls){
|
||||
for (Activity activity : activityStack) {
|
||||
if(activity.getClass().equals(cls) ){
|
||||
finishActivity(activity);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 结束所有Activity
|
||||
*/
|
||||
public void finishAllActivity(){
|
||||
for (int i = 0, size = activityStack.size(); i < size; i++){
|
||||
if (null != activityStack.get(i)){
|
||||
activityStack.get(i).finish();
|
||||
}
|
||||
}
|
||||
activityStack.clear();
|
||||
android.os.Process.killProcess(android.os.Process.myPid());
|
||||
}
|
||||
/**
|
||||
* 退出应用程序
|
||||
*/
|
||||
public void AppExit(Context context) {
|
||||
try {
|
||||
finishAllActivity();
|
||||
ActivityManager activityMgr= (ActivityManager) context.getSystemService(Context.ACTIVITY_SERVICE);
|
||||
// activityMgr.restartPackage(context.getPackageName());
|
||||
activityMgr.killBackgroundProcesses(context.getPackageName());
|
||||
System.exit(0);
|
||||
android.os.Process.killProcess(android.os.Process.myPid());
|
||||
} catch (Exception e) { }
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user