我的Android应用程序由2个活动组成:A和B具有不同的任务关联性。从活动A开始,我用标志FLAG_ACTIVITY_NEW_TASK开始活动B.类似地,从活动B开始,我使用相同的意图标志来启动活动A.虽然活动A仍然存在,但是调用onCreate方法而不是onNewIntent。此外,按后退按钮将我带到主屏幕。我怎么能理解这种行为?
答案 0 :(得分:1)
onNewIntent
仅适用于singleTop
启动模式的活动,这意味着如果该活动位于首位,请不要启动新活动,而是在{{1}内向其发送此意图}}。如果活动不在堆栈顶部,则不会生效。
来自文档:
onNewIntent
因此,新推出的活动在此新创建的任务中没有先前的活动,此按下会将您带到主屏幕。
如果您希望自己的活动在整个应用中只有一个实例,那么您可以在清单中使用FLAG_ACTIVITY_NEW_TASK
If set, this activity will become the start of a new task on this history stack.
。来自Docs:
singleTask