关于Activity的管理类
来源:互联网 发布:淘宝店铺综合评分68 编辑:程序博客网 时间:2024/06/08 11:06
下面介绍一下关于app开发的activity管理类
在开发一款App时,Activity统一管理类是非常有必要的。包括将activity添加到栈中,结束activity等。现在介绍一个统一写法
public class AppManager { private Stack<Activity> activityStack; private static AppManager instance; private AppManager(){} /** * 单一实例 * @return */ public static AppManager getAppManager(){ if(instance==null){ synchronized (AppManager.class) { 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 void finishActivity(){ Activity activity=activityStack.lastElement(); if(activity!=null){ activity.finish(); activity=null; } } /** * 结束指定的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) { } }}
代码中还添加了退出所有activity即退出整个应用的写法。
该如何使用他呢。
众所周知,我们在开发一个应用的时候,都会写一个base类,让我们之后用到的所有Activity都来继承他,因此我们只需要在baseActivity中来调用就可以了。
public class BaseActivity extends Activity{ @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); AppManager.getAppManager().addActivity(this); } @Override protected void onDestroy() { super.onDestroy(); AppManager.getAppManager().finishActivity(this); }}
这样的话,只要我们每写一个activity就来继承BaseActivity。
那base类中关于退出应用的方式如何实现呢。其实很见到,只要我们在点退出应用时直接调用即可,即:
AppExit(this)
很简单,希望对大家有用!
阅读全文
0 0
- 关于Activity的管理类
- 关于activity的管理
- 关于Activity生命周期的管理
- 关于安卓的activity task管理
- 关于Activity和Fragment 的栈管理
- Android的activity管理类
- android activity的管理类
- Android关于Activity的一些使用和全局管理技巧
- android activity的管理类的实现
- 线程池管理的基类Activity
- android项目管理activity的类
- 封装Activity的堆栈管理类。
- 管理Activity的实例
- 管理Activity的生命周期
- android的Activity管理
- 管理Activity的生命周期
- Activity的生命周期管理
- 管理Activity的生命周期
- Tomcat日志系统详解
- Sql Server 2008 R2数据库连接
- Kubernetes 1.6 部署prometheus和grafana(数据持久)
- js核心基础之构造函数constructor
- 笔试面试题
- 关于Activity的管理类
- 哈希表的平均查找长度
- GDB7.6.1源码安装
- ItelliJ IDEA开发工具使用—创建一个web项目
- 将爬虫爬取下来的内容放到txt文件下
- MQL4学习之MACD Sample解读
- 大型网站技术架构
- 算法复杂度精讲
- hdu-暑假集训-Questionnaire