我的理解是,如果一个singleTask活动已经存在,不会再次创建,但它的onNewIntent将被调用。singleTask从服务调用的活动不触发onNewIntent
实际上,当我从另一个Activity启动一个Intent时,会发生这种情况,但不是来自服务。此外,我注意到,如果我将我的Activity声明为singleInstance(即在这种情况下,即使从服务onNewIntent调用),也不会发生这种情况,但它也涉及我不想要的堆栈并发症。
我不喜欢的是,如果我有一个singleTask活动的实例正在运行,onNewIntent将始终被调用,并且它以一种活动而不是服务的方式工作。
为什么会这样,我应该怎么做才能保持我的背部堆栈完好无损,并将我现有的活动从我的服务中带到最高层?
注意:当我打电话给我的singleTask活动时,我确实有FLAG_ACTIVITY_NEW_TASK。
谢谢!
谢谢,但我确实已经有了这个标记......我将它添加到描述中: ) – 2013-05-03 01:11:37
在我看来,singleTask会在从活动中调用时清除顶部。我测试使用一个singleTask和B一个正常的活动。 A - > B - > A当我按回我期望B但我得到了我的启动活动。从商业智能推出A正常,也与FLAG_ACTIVITY_NEW_TASK – 2013-05-03 01:31:05
它确实清除了顶部,但它通过重新创建该活动而不是将其带回顶部,并且只有在singleTask和“从服务调用”我组合不会... – 2013-05-03 15:38:51