Activity堆栈管理器 以及 应用退出的两种方案
2017-04-12 09:58
183 查看
import android.app.Activity; import android.content.Intent; import com.xd.ap.ui.SplashActivity; import java.util.Stack; /** * @author AcmenXD * @version v1.0 * @github https://github.com/AcmenXD * @date 2017/3/13 15:29 * @detail Activity堆栈管理器 */ public enum ActivityStackManager { INSTANCE; private static Stack<Activity> activityStack; /** * 获取当前Activity */ public Activity currentActivity() { Activity activity = activityStack.lastElement(); return activity; } /** * 添加一个Activity */ public void addActivity(Activity activity) { if (activityStack == null) { activityStack = new Stack<Activity>(); } activityStack.add(activity); } /** * 移除一个Activity */ public void removeActivity(Activity activity) { if (activityStack == null) { activityStack = new Stack<Activity>(); } activityStack.remove(activity); } /** * 结束当前Activity */ public void finishActivity() { Activity activity = activityStack.lastElement(); finishActivity(activity); } /** * 结束一个Activity */ public void finishActivity(Activity activity) { if (activity != null) { removeActivity(activity); activity.finish(); activity = null; } } /** * 结束一个Activity,根据class */ public void finishActivity(Class<?> cls) { for (Activity activity : activityStack) { if (activity.getClass().equals(cls)) { finishActivity(activity); } } } /** * 结束所有Activity */ public void finishAllActivity() { for (Activity activity : activityStack) { if (null != activity) { activity.finish(); } } activityStack.clear(); } /** * 退出应用程序 -> 杀进程 */ public void exit() { exit2(); android.os.Process.killProcess(android.os.Process.myPid()); } /** * 退出应用程序 -> 不杀进程,只是关掉所有Activity */ public void exit2() { finishAllActivity(); } }
使用方式
// 将此Activity添加到ActivityStackManager中管理 ActivityStackManager.INSTANCE.addActivity(this); // 将此Activity在ActivityStackManager中移除 ActivityStackManager.INSTANCE.removeActivity(this); // 退出应用程序 ActivityStackManager.INSTANCE.exit();
相关文章推荐
- Android中Exif的操作以及Camera应用中相关代码优化方案
- Android串口设备的应用实现方案以及与WEB的交互
- UIVIEW 的旋转与缩放以及同时应用两种效果(二)
- Android 双击back键退出应用的两种方式
- Activity生命周期的应用场景举例以及显隐式Activity启动的两种方式和启动系统常见的ACtivity
- 安装以及应用rational rose 后退出时报错:"MEM_BAD_POINTER"
- 记录一下Android两种实现双击退出应用的方式
- Android 应用退出的两种方法
- UIView 的旋转与缩放以及同时应用两种效果及应用
- 安卓实现按返回键回到桌面以及再一次按返回键退出应用
- 结构体的两种声明方式:堆上和栈上以及在双链表的应用
- Android中Exif的操作以及Camera应用中相关代码优化方案
- 退出应用到后台时清除UIAlertView以及多个UIAlertView重叠显示
- UIVIEW 的旋转与缩放以及同时应用两种效果(一)
- UIView 的旋转与缩放以及同时应用两种效果
- Android串口设备的应用实现方案以及与WEB的交互
- Android利用activity启动模式退出整个应用以及客户端与服务器交互
- 队列应用银行排队问题模拟:计算客户的平均停留时间和等待时间以及每个客户的时间信息,两种方法实现
- android应用完全退出,并且从最近运行程序以及系统正在运行列表中完全抹除。
- Kubernetes 集群的两种部署过程(daemon部署和容器化部署)以及glusterfs的应用!