Activity管理类
2017-07-19 16:37
183 查看
public class AppManager { private static AppManager instance; private Stack<Activity> activityStack; /** * 私有的构造函数 */ private AppManager() { if (null == activityStack) { activityStack = new Stack<>(); } } public static AppManager getInstance() { if (null == instance) { instance = new AppManager(); } return instance; } /** * 添加Activity到堆栈 */ public void addActivity(Activity activity) { activityStack.add(activity); } /** * 获取当前Activity(堆栈中最后一个压入的) */ public Activity currentActivity() { return activityStack.lastElement(); } /** * 结束当前Activity(堆栈中最后一个压入的) */ public void finishCurrentActivity() { finishActivity(activityStack.lastElement()); } /** * 结束指定的Activity */ public void finishActivity(Activity activity) { if (null != activity) { activityStack.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(); } /** * 退出应用程序 */ public void AppExit(Context context) { try { finishAllActivity(); ActivityManager activityMgr = (ActivityManager) context.getSystemService(Context.ACTIVITY_SERVICE); activityMgr.killBackgroundProcesses(context.getPackageName()); System.exit(0); } catch (Exception e) { } } /** * 是否退出了 * * @return */ public boolean isAppExit() { return null == activityStack || activityStack.isEmpty(); } /** * 某个Activity是否存在 * * @param cls * @return */ public boolean isExistActivity(Class<?> cls) { for (Activity activity : activityStack) { if (activity.getLocalClassName().contains(cls.getSimpleName())) { return true; } } return false; } /** * 除了cls,结束所有的Activity * @param cls */ public void finishAllActivityExcept(Class<?> cls) { for (Activity activity : activityStack) { if (!activity.getClass().equals(cls)) { finishActivity(activity); } } } }
相关文章推荐
- 开源中国客户端Activity管理类(可直接用到项目中)
- Android 应用程序Activity管理类:用于Activity管理和应用程序退出
- 单例:app activity 单例模式管理类
- activity管理类
- activity管理类 appManager
- Activity管理类,用于Activity管理和应用程序退出
- 应用程序Activity管理类
- AndroidUtils(二)Activity管理类
- android应用程序中 activity管理类的实现
- Activity的管理类
- Android Activity全局管理类
- AppManager Activity管理类
- 应用程序Activity管理类:用于Activity管理和应用程序退出
- android Activity管理类之退出程序
- android activity的管理类的实现
- Android的activity管理类
- activity活动管理类
- 【Android】Android开发之Activity的管理类,结束关闭指定的Activity,单例模式封装
- 简捷的activity管理类(生命周期监听控制)
- android应用框架设计之Activity管理类:AppManager