添加intent标志符,清理task栈
android开发___Intent标志符
android开发----Task栈执行流程与intent标志符
任务是指执行特定作业时与用户交互的一系列Activity,这些Activity按照各自的打开顺序排列在堆栈(即返回栈)中
App打开时系统会自动创建一个任务就是常说的Task栈,应用中第一个展示出来的Activity会作为Task栈第一个Activity插入到创建的Task栈中, 依次打开多个Activity最新打开的会被置于栈顶部,其它Activity按照顺序排列,若返回上一个Activity, 该Activity重新激活,但是前的Activity会被销毁。task栈 按先进后出原则工作
Intent标识符
启动新的Activity时,可以通过在传递给startActivity的Intent中加入相应的标志,修改Activity与其任务的默认关联方式
Intent.FLAG_ACTIVITY_CLEAR_TASK
清除当前Task栈中的Activity
Intent.FLAG_ACTIVITY_NEW_TASK
新建Task栈
跳转动画异常是因为格式样式windowAnimationStyle与Task栈顺序有关,清空Task栈会影响到原有顺序所以需要在
Intent intent = new Intent(context, LoginActivity.class); intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TASK | Intent.FLAG_ACTIVITY_NEW_TASK); context.startActivity(intent); ((Activity)context).overridePendingTransition(R.anim.open_enter, R.anim.open_exit);
在跳转时重新设置动画
intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TASK | Intent.FLAG_ACTIVITY_NEW_TASK);
overridePendingTransition(R.anim.open_enter, R.anim.open_exit);
解决清理task后过渡动画的问题
对context进行强制类型转换
overridePendingTransition必须放在startActivity后面
清理task栈, 并且生成一个新的task栈
清理task栈,创建新的task栈
intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TASK|Intent.FLAG_ACTIVITY_NEW_TASK)
//利用Intent跳转Activity context.startActivity(intent),//定义跳转动画(( Activity)context).overridePendingTranssiton();