创建一个自己项目的Activity管理类(方法一 二均可用)记得点赞哦!谢谢方法一
public class ActivityManager { private static Stack<Activity> activityStack; private static ActivityManager instance; private ActivityManager() { } public static ActivityManager getScreenManager() { if (instance == null) { instance = new ActivityManager(); } return instance; }/** * 获取当前Activity个数 */public int getActivitySize() { if (activityStack != null && !activityStack.empty()) { return activityStack.size(); } return 0; } /** * 退出栈顶Activity */ public void popActivity(Activity activity) { if (activity != null) { activity.finish(); activityStack.remove(activity); activity = null; } } /** * 获得当前栈顶Activity 先进后出原则 */ public Activity currentActivity() { Activity activity = null; if (activityStack != null && !activityStack.empty()) activity = activityStack.lastElement(); return activity; } /** * 将当前Activity压入栈中 */ public void pushActivity(Activity activity) { if (activityStack == null) { activityStack = new Stack<Activity>(); } activityStack.add(activity); } /** * 退出栈中class上面的所有Activity。 */ public void popAllActivityExceptOne(Class cls) { while (true) { Activity activity = currentActivity(); if (activity == null) { break; } if (activity.getClass().equals(cls)) { break; } popActivity(activity); } } /** * 退出栈中除了包名外的所有Activity, */ public void popAllActivityExceptPackageName(String packageName) { for (Activity activity : activityStack) { if (activity != null) { String name = activity.getComponentName().getPackageName(); if (!name.contains(packageName)) { popActivity(activity); } } } } /** * 退出栈中所有Activity */ public void popAllActivity() { while (true) { Activity activity = currentActivity(); if (activity == null) { break; } popActivity(activity); } }}
方法二
或者用简单的方法实现(清晰易懂操作)public class ActivitysManager { private static List<Activity> activityList; private static ActivitysManager instance; private ActivitysManager() { } public static ActivitysManager getActivitysManagerInstance() { if (instance == null) { instance = new ActivitysManager(); } return instance; } //退出栈顶Activity public void popActivity(Activity activity) { if (activity != null) { activityList.remove(activity); activity = null; } } //将当前Activity压入栈中 public void pushActivity(Activity activity) { if (activityList == null) { activityList = new LinkedList<Activity>(); } activityList.add(activity); } //退出栈中所有Activity public void exitApp(){ for(Activity activity:activityList){ if(!activity.isFinishing()){ activity.finish(); } } int id=android.os.Process.myPid(); if(id!=0){ android.os.Process.killProcess(id); } } }
activity管理器一次退出所有activity
最新推荐文章于 2024-08-15 14:30:51 发布