博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Activity管理类AppManager
阅读量:7023 次
发布时间:2019-06-28

本文共 2033 字,大约阅读时间需要 6 分钟。

public class AppManager {

public Stack
mStack;public ArrayList
mActivities;public static AppManager mInstance;public static AppManager getInstance(){ if( mInstance==null ) { mInstance = new AppManager(); } return mInstance;}/** * 添加Activity到栈中 */public void addActivity(Activity activity){ if( mStack==null ){ mStack = new Stack<>(); } mStack.add(activity);}/** * 获取当前Activity */public Activity getCurrentActivity(){ return mStack.lastElement();}/** * 结束指定的Activity */public void killSingleActivity(Activity activity){ if( activity==null ){ return; } mStack.remove(activity); activity.finish();}/** * 结束指定的Activity */public void killSingleActivity(Class
cls){ for( Activity activity : mStack ){ if( activity.getClass().equals(cls) ){ killSingleActivity(activity); } }}/** * 结束多个Activity */public void killMoreActivity(ArrayList
> activities){ if( mActivities==null ){ mActivities = new ArrayList<>(); } for( Class
cls : activities ){ Activity activity = isHere(cls); if( activity!=null ){ mActivities.add(activity); } } mStack.removeAll(mActivities); for( Activity activity : mActivities ){ activity.finish(); } mActivities.clear();}/** * 是否在栈中 */public Activity isHere(Class
cls){ for( Activity activity : mStack ){ if( activity.getClass().equals(cls) ){ return activity; } } return null;}/** * 结束所有 */public void killAllActivity(){ for( Activity activity : mStack ){ activity.finish(); } mStack.clear();}/** * 退出程序 */public void exitApp(){ killAllActivity(); System.exit(0);}}复制代码

Activity中使用:

@Overrideprotected void onCreate(Bundle savedInstanceState) {     ....    AppManager.getAppManager().addActivity(this);}复制代码

//要关闭Activity的地方调用 代替finish() AppManager.getAppManager().killActivity(this);

转载于:https://juejin.im/post/5a31dc4ef265da43062ac6e1

你可能感兴趣的文章
JAVA中的CAS
查看>>
51nod 1770 数数字
查看>>
开源跳板机(堡垒机)Jumpserver v0.2.0 部署篇
查看>>
height、clientHeight、scrollHeight、offsetHeight区别
查看>>
python之sqlite3使用详解(转)
查看>>
文件描述符就绪python模块介绍- select 等待I/0完成
查看>>
Codeforces Beta Round #18 (Div. 2 Only) C. Stripe 前缀和
查看>>
【ALearning】第二章 Androidproject知识介绍
查看>>
JAVA实现AES的加密和解密算法
查看>>
makefile 学习一
查看>>
yii 验证码 CCaptcha的总结(转)
查看>>
oracle汉字占用字节长度
查看>>
python--条件判断和循环--3
查看>>
开发环境、生产环境、测试环境的基本理解和区别
查看>>
CSS布局:水平居中
查看>>
【HTTP】WireShark中获取Content-Encoding: gzip时的响应内容
查看>>
一些组织和个人网站
查看>>
二叉树应用进阶之折纸(二叉树的右根左遍历)
查看>>
运维相关开源项目
查看>>
Lua MD5加密字符串
查看>>