下面我展示了我想要如何浏览Activities
的流程:
我尝试在D
和E
中编写以下代码:
Intent list = new Intent(AddComplaint.this, B.class);
list.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_CLEAR_TASK);
startActivity(list);
但是,我面临两个问题:
B
启动时,它会暂时显示灰色屏幕,然后会加载。B
返回时,它退出应用程序,而不是转到A
(仪表板)。我该如何解决这个问题?
答案 0 :(得分:3)
我相信您可以使用FLAG_ACTIVITY_CLEAR_TOP达到您想要的效果。如果使用此标志发送Intent,它将被传递到现有的Activity B,并且堆栈上的B之上的任何活动(C,D / E)都将完成。
使用FLAG_ACTIVITY_CLEAR_TASK将完成堆栈上的所有先前活动,这将使B成为唯一剩余的活动 - 解释为什么在单击后退出应用程序。您的灰色背景与活动管理无关,并表示活动只需要一段时间来调用onCreate()。
示例代码:
Intent list = new Intent(AddComplaint.this, B.class);
list.setFlags
(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_CLEAR_TOP);
startActivity(list);
答案 1 :(得分:0)
我认为FLAG_ACTIVITY_CLEAR_TASK正在清除堆栈中的所有活动。
再次从活动B返回到A,而不改变现有代码的任何内容,简单地覆盖活动B中的onBackPress()方法和startActivity A../ / p>