应用程序中可能有很多活动,最后启动的活动保持在堆栈顶部,并在按下它时完成当前活动。我有一个活动序列,这是流程..
如果我们有 A,B, C(1) ,D, C(2) ... Activity C(1) 和 C(2) 是在导航应用程序时启动的 Activity C 的两个不同实例。所以需要的是清除活动 C 的所有实例,结果应该是当我完成C(2)时,我应该留下这些堆栈A,B,D。我应该怎么办 。
IMP - 我想让C(1)在堆栈中保持活动状态,直到我完成 C(2),因为我可以使用 New Task 标志启动 C 而不是创建这些实例,但是这些实例具有不同的 UI 和工作。
以下方法是不利的。
第一的
@Override
public void onBackPressed(){
super.onBackPressed();
Intent intent = new Intent(C(2).this , D.class);
intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP));
startActivity(intent);
}
这将从堆栈中清除所有活动并重新启动活动
第二
跟踪单例类中的 Activity,然后重新启动所需的流程,这将如何消耗有许多要启动的 Activity 的时间。
所以我认为应该有一些使用包管理器或其他可以解决问题的解决方案,解决方案表示赞赏