就像在图中我想在开始另一个活动时关闭所有先前的活动。我用旗帜试了很多,但它似乎没有用。例如。在活动A上启动活动B时,我调用了
Intent intent = new Intent(this, ActivityB.class);
intent = intent.setFlags(Intent.FLAG_ACTIVITY_NO_ANIMATION);
intent = intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TASK | Intent.FLAG_ACTIVITY_NEW_TASK);
startActivity(intent);
或
Intent intent = new Intent(this, ActivityB.class);
intent = intent.setFlags(Intent.FLAG_ACTIVITY_NO_ANIMATION);
intent = intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
startActivity(intent);
但是在活动A中没有调用finish()
方法。
我有一个名为Navigation
的全局类,它扩展Activity
以在一个类中处理这样的事情。所有橙色活动都扩展了我的导航,蓝色活动不会扩展。 BackButton行为似乎工作正常,但在启动另一个活动时不会调用finish()
方法。我是否必须明确呼叫finish()
?哪里?如果我在onStop
中执行此操作,则在重新启动应用时,我无法返回活动X.
答案 0 :(得分:0)
之后
startActivity(intent);
简单地说
finish();
您要完成的活动。 只有在ie时才需要标志。你想清除活动堆栈
答案 1 :(得分:0)
你做得对,只需在代码中添加finish():
Intent intent = new Intent(this, ActivityB.class);
intent = intent = intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
startActivity(intent);
finish();