从堆栈中删除已启动的外部活动

时间:2012-12-01 14:45:52

标签: android android-activity

在我的应用程序中,我使用以下代码启动Facebook App:

String uri = "fb://page/" + fbPageId;
Intent intent = new Intent(Intent.ACTION_VIEW, Uri.parse(uri));
intent.setFlags(intent.getFlags() | Intent.FLAG_ACTIVITY_NO_HISTORY | Intent.FLAG_ACTIVITY_CLEAR_TOP);
startActivity(intent);

这是按预期工作的。但是目前,当用户启动FB活动然后按下“Home”按钮并再次启动我的App时,他将看到Facebook App。用户必须按“后退”按钮才能看到我的应用程序。我不喜欢这种行为。这可能对内部有益,但对外部意图无效。

是否可以启动活动并立即从当前应用程序的堆栈中删除此新活动?

如果还尝试过像startActivityForResult()这样的东西,但是没有做到这一点。

1 个答案:

答案 0 :(得分:0)

这是因为FB Activity和你的Activity都属于同一个任务。请参阅Official Documentation,了解如何在单独的任务中启动活动。

具体来说,Intent Flag FLAG_ACTIVITY_NEW_TASK用于在单独的任务中启动Activity。