我需要“最近”屏幕的行为:在我上次中断的地方继续执行任务。
(...)如果您现在要启动的活动已经在运行任务,则不会启动新的活动;取而代之的是,当前任务将以最后一次出现的状态简单地显示在屏幕的前面(...)
这似乎很有希望,但是下面的代码的行为就像也设置了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个活动:TotalCommander
和TCEditActivity
。如果按下主页按钮,将看到启动器应用程序,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);