2

我的应用程序有两个活动 A 和 B。A 是任务的根,是从启动图标启动的任务。B可以从A开始。

除了从启动图标启动 A 外,还可以通过单击另一个应用程序中的文件来启动 A,例如单击电子邮件附件或 Drive 中的文件。我通过向清单文件中的意图过滤器添加操作和类别来完成此操作。

我想让它当 A 从另一个应用程序启动时,而不是创建一个新任务,我希望现有任务恢复到它之前的相同状态。这可以是活动 A 或 B,无论用户在按下 Home 键之前碰巧在哪里。

我尝试了各种启动模式和意图标志,但似乎没有任何效果。

4

2 回答 2

5

广播与清单中的启动器意图相同的意图:

Intent intent = new Intent(context, MainActivity.class);
intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
intent.setAction(Intent.ACTION_MAIN);
intent.addCategory(Intent.CATEGORY_LAUNCHER);

我不知道为什么,但这提出了现有的任务,而不是开始一个新的任务。相比之下,以“官方”方式获得的启动器意图实际上会启动一个新任务:

Intent intent = context.getPackageManager()
   .getLaunchIntentForPackage(context.getPackageName());
于 2015-08-23T23:44:11.593 回答
0

将启动模式更改为单任务。并听 onNewIntent()

于 2015-08-23T23:35:35.960 回答