是否有FLAG_ACTIVITY_***将前一个“活动”放在前面并完成堆栈之间的所有其他活动



我的堆栈中当前有一些活动,让我们想象一下:

A、 B、C、D、E。

我在活动E中,我的"向上导航"应将活动A放在前面并完成(B、C、D)。

我目前与合作

        case android.R.id.home:
            Intent intent = new Intent(this, ActivityA.class);
            intent.addFlags(Intent.FLAG_ACTIVITY_REORDER_TO_FRONT);
            startActivity(intent);
            finish();
            return true; 

这很好,活动A恢复到以前的状态,但(B,C,D)仍然存在。

有没有办法正确完成(B、C、D)?

注意:我正在搜索以避免像onActivityResult这样复杂的东西,这在复杂的应用程序结构中是不可能处理的

谢谢。

试试这个:

  case android.R.id.home:
        Intent intent = new Intent(this, ActivityA.class);
        intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
        startActivity(intent);
        finish();
        return true; 

我认为FLAG_ACTIVITY_CLEAR_TOP就是您所需要的:

如果设置了,并且正在启动的活动已在当前任务中运行,则不会启动该活动的新实例,而是关闭其上的所有其他活动,并且此Intent将作为新Intent传递给(现在位于顶部的)旧活动。

尽管如果您希望重用活动A的现有实例(通过onNewIntent()),但您可能还需要在意图中设置FLAG_ACTIVITY_SINGLE_TOP

相关内容

  • 没有找到相关文章

最新更新