【小白的成长】activity跳转如何正确跳转

来源:互联网 发布:小暮阁下知乎 编辑:程序博客网 时间:2024/05/19 18:39

刚做项目通过一个dialog进行跳转到主界面,发现了一个双击退出按钮却不能退出,反而回到了dialog之前的界面,这才想到ACTIVITY栈的删除。在网上找了一下资料后更改了这个小bug

经启动了四个Activity:A,B,C和D,

   在D Activity里,想再启动一个Activity B,但不变成A,B,C,D,B,而是希望是A,B,而且B上的数据依然保留

ntent.addFlags(Intent.FLAG_ACTIVITY_SINGLE_TOP);//设置不要刷新将要跳到的界面  intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);//它可以关掉所要到的界面中间的activity  

希望是A,B,而且B上的数据不保留

intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);//它可以关掉所要到的界面中间的activity  

如果已经启动了四个Activity:A,B,C和D,在D Activity里,
  想再启动一个 Activity B,但不变成A,B,C,D,B,而是希望是A,C,D,B,则可以像下面写代码:

intent1.addFlags(Intent.FLAG_ACTIVITY_REORDER_TO_FRONT); 

如果已经启动了四个Activity:A,B,C和D,在D Activity里,想要一次性关闭所有的activity

建一个专门用来处理activity的类

package com.layout;import java.util.LinkedList; import java.util.List; import android.app.Activity; import android.app.Application; /** * 一个类 用来结束所有后台activity * @author Administrator * */public class SysApplication extends Application {//运用list来保存们每一个activity是关键    private List<Activity> mList = new LinkedList<Activity>();    //为了实现每次使用该类时不创建新的对象而创建的静态对象    private static SysApplication instance;     //构造方法    private SysApplication(){}    //实例化一次    public synchronized static SysApplication getInstance(){         if (null == instance) {             instance = new SysApplication();         }         return instance;     }     // add Activity      public void addActivity(Activity activity) {         mList.add(activity);     }     //关闭每一个list内的activity    public void exit() {         try {             for (Activity activity:mList) {                 if (activity != null)                     activity.finish();             }         } catch (Exception e) {             e.printStackTrace();         } finally {             System.exit(0);         }     }     //杀进程    public void onLowMemory() {         super.onLowMemory();             System.gc();     }  } 


0 0
原创粉丝点击