完成特定活动的所有实例(Finish All Instance of particular Acti

2019-08-16 20:10发布

可以有很多应用程序的活动和上次启动活动上停留堆栈的顶部和背部按压它完成当前activity.I有活动的序列,这里是流..

如果我们有A,B,C(1),d,C(2)...活动C(1)和C(2)活动的C两个不同的实例,同时进行导航。那么什么是必要的是将应用程序启动清除活性的C的所有实例和结果应当是当我完成C(2)I应该留下已经与这些叠层A,B,d。 我该怎么办 。

IMP -I要保持C(1)堆栈的生命,直到除非我完成C(2),因为我可以有新的任务标志,而不是创建这些实例,但这些实例启动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);
}

这将清除栈并重新启动活动的所有活动

第二

保持活动的轨迹在单独的类,然后重新发动所需的流量,怎么过这个会消耗时,有许多人开始活动的时间。

所以,我认为,应当使用将解决问题包管理器或其他一些解决方案,解决方案是值得赞赏

Answer 1:

我不知道的方式来完成活动C2时手动C1关闭活动。

然而,你可以在它照顾活动C1的是,在恢复这样 -

1 - 你的应用程序类设置一个标志:

public static boolean IsClosingActivities = false;

这个值可以通过C2活动的C2出现“完成”之前的位置设置为“真”。

并且设定点“假”,你会打电话给startActivity的一个新的活动C.(假设活动的C新实例可以在应用程序以后创建)。

2 - 在C语言实现的简历:

    @Override
    protected void onResume() {     
        super.onResume();
        if (YourApplication.IsClosingActivities) {
                this.finish();
        } 
    }

通过这种方式 - 当用户从d向后导航 - C1将完成本身,他将被导航到B.



文章来源: Finish All Instance of particular Activity