android的activity栈管理
来源:互联网 发布:web前端评测软件 编辑:程序博客网 时间:2024/05/21 08:55
在进行BlackBerry程序开发的时候,BlackBerry提供了一个管理Screen的栈,用来从任何地方来关闭位于最上一层的Screen,使用UiApplication.getUiApplication().getActiveScreen()来得到位于最上一层的Screen的实例,并且使用UiApplication.getUiApplication().popScreen()来关闭一个Screen或关闭当前最上一层的Screen,但是Android却未提供相应的功能,只能在一个Activity的对象里面调用finish来关闭自己,不能关闭其他的Activity。比如我们想实现一个功能从屏幕A—>屏幕B—>屏幕C—>屏幕D,然后在在转到屏幕D之前将屏幕B和C关闭,在屏幕B和屏幕C界面点击会退按钮都可以回退到上一个屏幕,但是在屏幕D上点击会退按钮让其回退到A,此外在一些循环跳转的界面上如果不在合适的地方将一些不需要的屏幕关闭,那么经过多次跳转后回导致内存溢出。对此我们可以设计一个全局的Activity栈,使用这个栈来管理Activity。管理Activity的类的定义如下:
- import java.util.Stack;
- import android.app.Activity;
- public class ScreenManager {
- private static Stack<Activity> activityStack;
- private static ScreenManager instance;
- private ScreenManager(){
- }
- public static ScreenManager getScreenManager(){
- if(instance==null){
- instance=new ScreenManager();
- }
- return instance;
- }
- public void popActivity(){
- Activity activity=activityStack.lastElement();
- if(activity!=null){
- activity.finish();
- activity=null;
- }
- }
- public void popActivity(Activity activity){
- if(activity!=null){
- activity.finish();
- activityStack.remove(activity);
- activity=null;
- }
- }
- public Activity currentActivity(){
- Activity activity=activityStack.lastElement();
- return activity;
- }
- public void pushActivity(Activity activity){
- if(activityStack==null){
- activityStack=new Stack<Activity>();
- }
- activityStack.add(activity);
- }
- public void popAllActivityExceptOne(Class cls){
- while(true){
- Activity activity=currentActivity();
- if(activity==null){
- break;
- }
- if(activity.getClass().equals(cls) ){
- break;
- }
- popActivity(activity);
- }
- }
- }
0 0
- android的activity栈管理
- android的Activity管理
- android的Activity管理
- 使用自定义的Activity栈来管理android的Activity
- 使用自定义的Activity栈来管理android的Activity
- 使用自定义的Activity栈来管理android的Activity
- 自定义栈管理android的Activity
- 自定义栈管理android的Activity
- Android之Activity的栈管理
- 自定义Activity栈来管理android的Activity
- Android Activity---管理Activity的生命周期
- Android Activity---管理Activity的生命周期
- android Activity的任务管理
- Android的activity管理类
- Android中Activity的管理
- Android 管理自己的Activity
- android activity的管理类
- Android Activity管理之Activity栈
- CSS3 Media Query实现响应式Web设计(针对不同移动设备宽度)
- 总有一种正能量触动你的心灵,读刘丁宁的一封信
- webservice CXF整合spring服务端测试并生成wsdl文件
- spring的PropertyPlaceholderConfigurer和PropertyOverrideConfigurer
- Command terminated by signal 11
- android的activity栈管理
- 2014-06-27 日志
- 今天看到有人要用matlab作数据简单拟合;用gnuplot+CTeX试了一下效果
- 【OJ】(二)---A---矩形类定义
- JSON和JSONP有哪些区别,PhoneGap跨域请求如何实现
- typedef struct与struct定义结构体
- tomcat7.0 源码阅读1 (环境搭建)
- 程序猿笑话,放松一下
- 不要小看这道题,赶快来看看!!!!!!