是否有可能从堆栈重新打开特定活动? 所以说我打开活动a,然后是b,然后是c。我在开始新活动时没有完成a和b。如果按下我的后退按钮而没有覆盖它,我当然会去B.
但我想给一个按钮或者后面的按钮来打开A,或者B独立于它在堆栈中的位置。这可以通过完成活动来实现(如果我完成b,并按下C的后退按钮,我会去A)。但是我的一些活动我不想完成。
我研究但无法找到如何实现这一目标。这可能吗?
当然,如果活动处于活动状态,则需要进行检查,如果是,则重新打开或打开它。
答案 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);
}
如果这不是您想要的,请告诉我。
答案 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
。