0

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

但是我想给一个按钮或者后退按钮来打开 A 或 B ,而与它在堆栈中的位置无关。这可以通过完成活动来实现(如果我完成 b,然后按 C 的后退按钮,我会去 A)。但我的一些活动我宁愿不完成。

我进行了研究,但找不到如何实现这一目标。这可能吗?

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

4

2 回答 2

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);
}

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

旗帜

于 2013-04-08T13:28:27.563 回答
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.

于 2014-01-29T22:43:27.870 回答