【Android工具类】Activity管理工具类AppManager
转载请注明出处:http://blog.csdn.net/zhaokaiqiang1992
import java.util.Stack;import android.app.Activity;
import android.app.ActivityManager;
import android.content.Context;/*** * @ClassName: com.qust.myutils.AppManager* @Description: Activity管理类:用于管理Activity和退出程序* @author zhaokaiqiang* @date 2014-11-20 下午4:53:33* */
public class AppManager {// Activity栈private static Stack<Activity> activityStack;// 单例模式private static AppManager instance;private AppManager() {}/*** 单一实例*/public static AppManager getAppManager() {if (instance == null) {instance = new AppManager();}return instance;}/*** 加入Activity到堆栈*/public void addActivity(Activity activity) {if (activityStack == null) {activityStack = new Stack<Activity>();}activityStack.add(activity);}/*** 获取当前Activity(堆栈中最后一个压入的)*/public Activity currentActivity() {Activity activity = activityStack.lastElement();return activity;}/*** 结束当前Activity(堆栈中最后一个压入的)*/public void finishActivity() {Activity activity = activityStack.lastElement();finishActivity(activity);}/*** 结束指定的Activity*/public void finishActivity(Activity activity) {if (activity != null) {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; i < activityStack.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) {}}
}
这个类是从oschina的androidclient开源项目中抽取出来的,主要用于Activity的管理和应用程序的退出。
假设我们在退出程序的时候,调用AppManager.AppExit(Context)就能够将栈中全部的Activity实例销毁。
假设我们要更加方便的是用这个管理类,推荐创建一个Activity的基类,并在onCreate和onDestory方法里面调用相应的方法,这样我们就不须要单独在某个Activity里面加入反复逻辑。精简代码。比方像以下这样
/*** 对context进行初始化,并将当前的Activity加入到堆栈中,便于管理*/@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);// 加入Activity到堆栈AppManager.getAppManager().addActivity(this);}@Overrideprotected void onDestroy() {super.onDestroy();// 结束Activity&从堆栈中移除AppManager.getAppManager().finishActivity(this);}
转载于:https://www.cnblogs.com/yxwkf/p/5069743.html
【Android工具类】Activity管理工具类AppManager相关推荐
- Windows磁盘管理软件/磁盘管理工具/硬盘分区管理工具
说到磁盘管理软件/磁盘管理工具/硬盘分区管理工具,大家可能会想到Windows自带的磁盘管理器,可以做简单的创建.删除.格式化.压缩.扩展卷.基本盘/动态盘互转.MBR/GPT盘格式互转等操作.但是对 ...
- 软件测试工具与软件测试管理工具的关系
软件测试工具与软件测试管理工具的关系 1.软件测试工具可提高软件测试工作的效率. 2.软件测试工具分为自动化软件测试工具和测试管理工具,所以测试管理工具是测试工具的一种. 3.自动化软件测试工具存在的 ...
- android 应用程序Activity管理类
import android.annotation.SuppressLint; import android.app.Activity; import android.app.ActivityMana ...
- 小米android微博授权管理工具下载,微博推广:第三方微博工具,微博管理工具:微博粉丝管理工具!...
推荐几个微博营销的必备工具 第三方微博工具很多,主要有以下几大类: 1:微博内容库工具 内容库目前以微博内容库.皮皮时光机.微博段子,这几款工具的内容库分类明确,并且有关键字搜索功能,而且每条微博连图 ...
- php ad 管理工具,打开AD管理工具连接到指定DC
如何指定打开AD管理工具时连接到某台DC?现在因为管理员众多,专门搭建了一台服务器,用于管理员连接并使用管理工具对AD进行管理.但是希望对其操作进行记录,所以开了审核日志.现在希望在这台服务器上打开A ...
- 登录linux后台工具,linux后台进程管理工具-supervisor
安装环境为:centos,如果是ubuntu的话命令可能会不一样. Supervisor 是一个用python编写的进程管理工具,能将一个普通的命令行进程变为后台的deamon,方便管理. 安装sup ...
- 团队工具_「管理工具」部门有效管理的5个工具,打造高效团队
前言:见过很多部门领导,各式各样,每个人都有自己的管理风格和性格特点.同时,在他们的领导下,部门氛围和目标达成也是各有千秋,有的团队高效.有的团队涣散.有的团队凝聚力强.有的团队极不稳定等等.我们发现 ...
- [工具]OFFICE插件管理工具-帮助更好地管理及使用电脑安装过的OFFICE插件
在OFFICE软件的世界中,除了由微软提供的OFFICE软件功能外,还有大量的功能由第三方开发者完成,市面上也存在大量的OFFICE插件供用户选择. 使用场景 有些插件仅在某个特定场景下才会使用,日常 ...
- linux 书签管理工具,在书签管理工具中使用Ubuntu字体
通过便捷书签管理程序(Bookmarklet,一种在浏览器中存放书签URL地址的应用程序)来在大多数的网站上推广使用Ubuntu系统的默认字体.--读者米格尔·费尔南迪斯 米格尔在他的想法产生之前告诉 ...
最新文章
- apache和tomcat的区别
- Python常用模块之configparser
- Shell循环与结构化命令
- 面试必会系列 - 1.4 类加载机制
- Angular最新教程-第六节编写响应式导航栏
- Linux入门笔记——文件操作命令1
- 整理的3500个常用汉字的调用字典
- 最新 | 更小、更快、更强!EfficientNetV2:Smaller-Faster-Better
- java RuntimeException
- Mac OS X 上搭建 Hadoop 开发环境指南
- eclipse adt如何切换到设计界面_如何设计出优秀的UI界面?这4个方面帮你快速优化...
- PAT甲题题解-1124. Raffle for Weibo Followers-模拟,水题
- 第015讲 仿sohu首页面布局
- 谷歌翻译配置hosts
- 数学建模常用算法—层次分析法(AHP)
- 如此优秀,这18个 Python 高效编程技巧真的太香了
- LimeSDR srsLTE实验
- HBuilderX 开发工具
- 海思3559A上编译ffmpeg
- 解决linux下.AppImage文件无法运行问题