论如何写出优雅的Android代码--------ActivityManager
2015-04-25 23:00
1241 查看
我承认其实我就是想找个地方做做笔记,记录一下自己今天学到的东西,也许很多人看来,这是很基本的东西,但对于我而言,这的确是不错的收获。进入正题,首先是ActivityManager类,以前看别人的项目也看到过该类,不错当时没有深入了解具体的作用,现在又接触了,所以就相对深入的认识了一下。先看代码吧。
package com.hxm.progress; import java.util.Stack; import android.app.Activity; public class ActivityManager { private static Stack<Activity> sActivityStack = new Stack<Activity>(); private static ActivityManager instance; private ActivityManager() { } public static ActivityManager getInstance() { if (instance == null) { instance = new ActivityManager(); } return instance; } /** * 退出栈顶Activity * * @param activity */ public void pop(Activity activity) { if (activity != null) { activity.finish(); sActivityStack.remove(activity); // 要将activity 设为 null activity = null; } } /** * 移除activity * * @param activity */ public void remove(Activity activity) { if (activity != null) { sActivityStack.remove(activity); // 要将activity 设为 null activity = null; } } /** * 获得当前栈顶Activity * * @return */ public Activity current() { Activity activity = null; if (sActivityStack.isEmpty()) { return null; } else { activity = sActivityStack.lastElement(); } return activity; } /** * 将当前Activity推入栈中 * * @param activity */ public void push(Activity activity) { sActivityStack.add(activity); } /** * 退出栈中cls上的所有Activity * * @param cls */ public void popAllActivityExceptOne(Class<Activity> clazz) { while (true) { Activity activity = current(); if (activity == null) { break; } if (activity.getClass().equals(clazz)) { break; } pop(activity); } } /** * 退出所有activity */ public void exit() { while (true) { Activity activity = current(); if (activity == null) { break; } pop(activity); } } }这是一个ActivityManager类,直译就是activity的管理类,主要是通过栈(stack)的数据结构来存储和管理应用中所有的activity实例,每实例化一个activity的就向sActivityStack也就是activity栈中push一个元素,当activity执行到ondestory()方法时,stack就要pop一个元素。至于为什么要用stack来存储,就好像打开网页一样,越新打开的网页标签通常是越后的,反正就是先进后出。
相关文章推荐
- Android开发如何写出优雅的代码
- 如何写出低碳环保的 Android 代码
- 代码质量管理——如何写出优雅地代码
- Android中如何优雅的处理重复点击实例代码
- 如何写出低碳环保的Android代码
- 如何写出优雅的Javascript代码
- 如何写出更好的android代码?提升android性能的一些建议。
- 代码之美 - 如何写出优雅的PHP代码
- 如何写出优雅兼备可读性的javascript代码
- 如何写出优雅的css代码 ?
- 如何写出优雅的JavaScript代码 ? && 注释
- 如何写出优雅的CSS代码 ?(转)
- [Android自定义控件]Android中如何用代码写出优美的Button
- Java&Android开源库代码剖析】のandroid-async-http(如何设计一个优雅的Android网络请求框架,同...
- 代码之美 - 如何写出优雅的PHP代码
- 代码之美 - 如何写出优雅的PHP代码
- 如何写出优雅的java代码
- 【python】如何在电脑上调试android上的python代码
- Android如何完全调试framework层代码