activity管理器一次退出所有activity
来源:互联网 发布:淘宝手机排名突然没了 编辑:程序博客网 时间:2024/05/22 00:48
创建一个自己项目的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); } }}
阅读全文
1 0
- 实现activity管理器一次退出所有activity
- 实现activity管理器一次退出所有activity
- activity管理器一次退出所有activity
- 一次退出所有的activity
- Android 一次退出所有activity的方法
- Android一次退出所有Activity的方法(升级版)
- android退出所有Activity
- android退出所有activity
- 退出所有activity实例
- 退出所有Activity方法
- android退出所有activity
- 退出所有的Activity
- android 退出所有Activity
- 退出所有Activity
- 退出所有的activity
- 退出所有Activity
- Android中知道界面是哪个activity,一次结束所有Activity退出程序
- #android--自定义栈管理Activity,实现一次退出所有的Activity
- java学习
- 小程序格式化
- springboot(十二):springboot如何测试打包部署
- 剑指offer--数组中出现次数超过一半的数字
- Qt HTTP网络相关GET,POST(HTTP 模拟POST 表单(multipartform)最简单和正式的方法)
- activity管理器一次退出所有activity
- HTML5 浏览器支持
- MYSQL5.7主从复制
- City Game
- 【LCS】POJ1458-Common Subsequence(模板)+LCS 的DP值算法解释
- HDU 1072 Nightmare BFS
- 华为软件开发云CloudIDE功能简测
- python pandas.errors Buffer overflow caught
- 使用 NTP 解决 Ceph 集群的时钟偏移