0

背景:

我的应用程序(我将其称为“ A ”)可以从一个意图启动。如果单击特定 URL,则会打开A。

A具有自定义导航,因此后退按钮并不总是覆盖 super.onBackPressed() 或 finish() 它。

问题:

从另一个应用程序打开A后,可以说电子邮件应用程序(我将其称为“ E ”),A不能回到E。如果我单击“任务”按钮,用户可以在其中看到当前正在运行的应用程序的名称、图标和缩略图,我可以看到E(图标和名称)作为缩略图A,而不是E。当我单击它时,我会转到A,并且无法返回E

问题:

有没有办法从A回到E?我应该跟踪活动堆栈以随时返回吗?我知道我不能强制关闭应用程序,但是我可以在A打开之前从E关闭E打开A吗?有没有办法在意图上指定这种行为?

提前致谢。

4

1 回答 1

0

我找到了一个有效的解决方案。

我检查A的 Activity 是否来自E,在这种情况下,我清除 Activity Stack 并重新启动A

if(comesFromE()){
    Intent i = getBaseContext().getPackageManager().getLaunchIntentForPackage(getBaseContext().getPackageName());
    i.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
    startActivity(i);
    finish();
}

这个答案帮助了我:如何以编程方式“重启”android 应用程序?

于 2013-11-13T14:40:22.727 回答