AppManager类,管理Activity和App
2024-08-31 16:01:31
- @Override
- protected void onCreate(Bundle savedInstanceState) {
- super.onCreate(savedInstanceState);
- // 添加Activity到堆栈
- AppManager.getAppManager().addActivity(this);
- }
- @Override
- protected void onDestroy() {
- super.onDestroy();
- // 结束Activity&从堆栈中移除
- AppManager.getAppManager().finishActivity(this);
- }
- * 应用程序Activity管理类:用于Activity管理和应用程序退出
- * @author liux (http://my.oschina.net/liux)
- * @version 1.0
- * @created 2012-3-21
- */
- public class AppManager {
- 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, size = activityStack.size(); i < 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.restartPackage(context.getPackageName());
- System.exit(0);
- } catch (Exception e) { }
- }
- }
最新文章
- PHP乱码问题,UTF-8(乱码) (share)
- 用grunt进行前端工程化之路
- SwiftLint——Swift代码检查及自动格式化工具
- Thread.CurrentPrincipal & HttpContext.Current.User
- 如何处理NBU Frozen Media
- mp3文件 ID3v2 帧标识的含义
- [复变函数]第10堂课 3.2 Cauchy 积分定理
- LINUX下安装ORACLE,完全搞定
- linux新内核中关闭硬盘的DMA
- JSON stringify and parse
- 串口WIF简单调试
- 在阿里云上布置git server
- android app启动过程(转)
- NYNU_省赛选拔题(5)
- Android intent 笔记
- loadrunner 录制中文出现乱码的解决办法
- 英语口语练习系列-C12-不了解
- Python 操作集合
- (其他)window10上好用的软件
- linux内存源码分析 - SLAB分配器概述
热门文章
- iOS知识点汇总
- cocos2d-x_AnchorPoint锚点
- 十分钟掌握diff&;patch用法
- kentico中的urls
- ORA-00980:synonym translation is no longer valid
- 把一串数字表示成千位分隔形式——toLocaleString()
- [JZOJ 5437] [NOIP2017提高A组集训10.31] Sequence 解题报告 (KMP)
- MyLayer MyScene
- CCS+C6678LE开发记录12:UIA组件的安装
- IOS设备获取崩溃日志的办法