(重新)从堆栈中打开特定活动

时间:2013-04-08 13:15:19

标签: android android-activity stack

是否有可能从堆栈重新打开特定活动? 所以说我打开活动a,然后是b,然后是c。我在开始新活动时没有完成a和b。如果按下我的后退按钮而没有覆盖它,我当然会去B.

但我想给一个按钮或者后面的按钮来打开A,或者B独立于它在堆栈中的位置。这可以通过完成活动来实现(如果我完成b,并按下C的后退按钮,我会去A)。但是我的一些活动我不想完成。

我研究但无法找到如何实现这一目标。这可能吗?

当然,如果活动处于活动状态,则需要进行检查,如果是,则重新打开或打开它。

2 个答案:

答案 0 :(得分:7)

你显然必须弄清楚你想知道哪些逻辑Activity要打开但是这应该达到你想要的目标

@Override
public void onBackPressed()
{
    super.onBackPressed();
    Intent intent = new Intent(CurrentActivity.this, ActivityYouWant.class);
    intent.setFlags(Intent.FLAG_ACTIVITY_REORDER_TO_FRONT);
    startActivity(intent);
}

如果这不是您想要的,请告诉我。

Flag

答案 1 :(得分:1)

codeMagic 的方式建议您可以在Activity栈中生成更多活动,然后您需要。这可能会导致内存泄漏或其他不良行为。 你应该看看:

intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
intent.setFlags(Intent.FLAG_ACTIVITY_EXCLUDE_FROM_RECENTS);
intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TASK | Intent.FLAG_ACTIVITY_NEW_TASK);

甚至更好finish()您的Activities

相关问题