如何以当前状态恢复现有任务

时间:2015-08-23 21:45:22

标签: android android-activity android-task

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

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

我想这样做,以便当A从另一个应用程序启动时,而不是创建一个新任务,我希望现有任务恢复到以前的状态。这可能是活动A或B,无论用户在他们回家之前碰巧在哪里。

我尝试了各种发射模式和意图标记,但似乎没有任何效果。

2 个答案:

答案 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()