如何在不重新排序任务的情况下将任务(包含特定活动)放在首位?

时间:2019-02-02 12:49:44

标签: android android-intent task

我需要“最近”屏幕的行为:在我上次中断的地方继续执行任务。

FLAG_ACTIVITY_NEW_TASK

  

(...)如果您现在要启动的活动已经在运行任务,则不会启动新的活动;取而代之的是,当前任务将以最后一次出现的状态简单地显示在屏幕的前面(...)

这似乎很有希望,但是下面的代码的行为就像也设置了FLAG_ACTIVITY_CLEAR_TASK

Intent intent = new Intent();
intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
intent.setClassName("com.example.app", "com.example.app.ExampleActivity");
startActivity(intent);

我误解了FLAG_ACTIVITY_NEW_TASK吗?
是否需要采取进一步措施才能正常工作?
是否受其他我无法控制的影响?

上下文

启动器应用程序中有一个按钮可以启动TotalCommander。假设我打开TotalCommander,浏览目录,然后使用TotalCommander的内置文本编辑器打开一个随机文本文件。如果我是对的,TotalCommander的任务现在有2个活动:TotalCommanderTCEditActivity。如果按下主页按钮,将看到启动器应用程序,TotalCommander任务将保持不变。然后,我在其他应用程序中执行其他操作,然后返回启动器再次启动TotalCommander。这是我要继续的地方:在TCEditActivity中编辑随机文本文件。只有长按主页按钮以打开“最近记录”屏幕,然后选择唯一的TotalCommander条目,我才能继续进行文本编辑。但是,如果我使用启动器应用程序的按钮,则TotalCommander会打开,即使我的意图似乎是正确的:FLAG_ACTIVITY_NEW_TASK已设置,但没有生效。

Intent intent = new Intent();
intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
intent.setClassName("com.ghisler.android.TotalCommander", "com.ghisler.android.TotalCommander.TotalCommander");
startActivity(intent);

0 个答案:

没有答案