• Android 开发 启动activity并且将前面activity全部清空


    方法一:

     Intent intent = new Intent(A.this,B.class);
    intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TASK | Intent.FLAG_ACTIVITY_NEW_TASK); startActivity(intent);
    startActivity的时候传递FLAG_ACTIVITY_CLEAR_TASK这个标志,那么这个标志将会清除之前所有已经打开的activity.然后将会变成另外一个空栈的root,然后其他的Activitys就都被关闭了.这个方法必须跟着{@link #FLAG_ACTIVITY_NEW_TASK}一起使用.
    一定要和FLAG_ACTIVITY_NEW_TASK一起使用!
     

    方法二:

                Intent intent = new Intent(context,PLoginActivity.class);
                intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TASK);
                context.startActivity(intent);    

    注意这里使用的是addFlags(); 二者的区别是setFlags();会清空原有的Flags设置新的Flags,而addFlags则是添加新的Flags

    方法三:

    /**
     *@content:活动结束管理类
     *@time:2019-1-29
     *@build:
     */
    
    public class ActivityFinishUtil {
        private static List<Activity> activityList = new ArrayList<>();
    
        public static void addActivity(Activity activity){
            activityList.add(activity);
        }
    
        public static void removeActivity(Activity activity){
            activityList.remove(activity);
        }
    
        public static void finishOtherAllActivity(Activity activity){
            for (Activity item : activityList){
                if (item == activity){
                    continue;
                }
                item.finish();
            }
        }
    
        public static void finishAllActivity(){
            for (Activity item : activityList){
                item.finish();
            }
        }
    
    }

    此方法只需要在你的基础Activity的onCreateonDestroy添加对应方法

    @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(getLayout());
            ActivityFinishUtil.addActivity(this);
        }
    
        @Override
        protected void onDestroy() {
            super.onDestroy();
            ActivityFinishUtil.removeActivity(this);
        }
  • 相关阅读:
    高数基础知识整理12.微分方程
    x(1-x)及其更高次在区间[0,1]上的积分值
    PHP中的http协议
    php简单实现MVC
    如何用jQuery获得select的值
    面向对象思想介绍
    MySQL 日期和时间戳的转换 | 以及DATE_FORMAT()用法
    js将时间转换为时间戳
    PHP中sql语句如何使用变量
    四种简单的sql语句(增删改查语句)
  • 原文地址:https://www.cnblogs.com/guanxinjing/p/10334630.html
Copyright © 2020-2023  润新知