我的应用程序有两个活动A和B.A是任务的根,是从启动图标启动的任务。 B可以从A开始。
除了从启动图标启动A之外,还可以通过单击另一个应用程序中的文件来启动A.单击电子邮件附件或云端硬盘中的文件。我通过向清单文件中的intent过滤器添加操作和类别来完成此操作。
我想这样做,以便当A从另一个应用程序启动时,而不是创建一个新任务,我希望现有任务恢复到以前的状态。这可能是活动A或B,无论用户在他们回家之前碰巧在哪里。
我尝试了各种发射模式和意图标记,但似乎没有任何效果。
答案 0 :(得分:4)
广播与清单中的启动器意图相同的意图:
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());
答案 1 :(得分:0)
将launchmode更改为singletask。并聆听NewIntent()