问题描述
- 所有的 activity stack 是空的
-
Intent intent=new Intent(contextMyClass.class); intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP); startActivity(intent);finish();
上面的代码将会结束所有 stack 中的 activities,并且会重新启动一个 activity。
当我把这个activity加入到一个类中,能正常运行,但在其它的类同样的位置,也就是同一行能执行,还会启动一个新的activity,但是当前的activity不能结束,一直开启着。
这是什么情况呀?
解决方案
首先FLAG_ACTIVITY_CLEAR_TOP并不是清空activity栈中的所有activity而是你跳转到的activity的所有上方的activity当然是在启动模式是默认的情况下;
然后.finish()写全了是this.finish()也就是XXXActivity.this.finish();看看是否结束的是自己要结束的activity.
#*#
我发现通过执行 intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP); 所有的 activities 都结束了,但不是 parent activity。
所以你如果想结束 parent activity,需要调用 startActivityForResult()方法。
#*#
clear_top的意思楼主可能一开始没有理解清楚。s_STEFANIE_s回答的很好。
时间: 2024-11-17 07:40:17