Created
July 14, 2016 10:09
-
-
Save KingJA/4373bf60bf0f199eeb90d3ef22de7ce6 to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
import java.util.Stack; | |
import android.app.Activity; | |
import android.content.Context; | |
/** | |
* activity堆栈式管理 | |
* | |
* @author FireAnt(http://my.oschina.net/LittleDY) | |
* @created 2014年10月30日 下午6:22:05 | |
* | |
*/ | |
public class AppManager { | |
private static Stack<Activity> activityStack; | |
private static AppManager instance; | |
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 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 && !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 | |
* | |
* @author kymjs | |
*/ | |
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) { | |
try { | |
finishAllActivity(); | |
// 杀死该应用进程 | |
android.os.Process.killProcess(android.os.Process.myPid()); | |
System.exit(0); | |
} catch (Exception e) { | |
} | |
} | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment