我的理解是,如果一个 singleTask 活动已经存在,则不会再次创建它,但会调用它的 onNewIntent。
事实上,当我从另一个 Activity 而不是从服务启动 Intent 时,就会发生这种情况。
此外,我注意到如果我将我的 Activity 声明为 singleInstance(即在这种情况下,即使从服务 onNewIntent 确实被调用)也不会发生这种情况,但它也涉及我不想要的回栈复杂性。
我的理解是 onNewIntent 总是会被调用,如果我有一个正在运行的 singleTask Activity 的实例,并且它确实从 Activity 但不是服务以这种方式工作。
为什么会这样,我应该怎么做才能保持我的后台堆栈完好无损,并将我现有的活动从我的服务中带到顶部?
注意:当我调用我的 singleTask 活动时,我确实有 FLAG_ACTIVITY_NEW_TASK。
谢谢!