Android 来自“的意图未更新”;“重新发布应用程序”;

Android 来自“的意图未更新”;“重新发布应用程序”;,android,android-intent,Android,Android Intent,当在我的应用程序中按下通知时,它会转到onNewIntent(),并且应用程序正在处理意图中的额外内容。我没有在代码中的任何位置执行setIntent 除了这种奇怪的行为外,一切正常: 如果在处理通知后,用户按下后退按钮(关闭活动),然后在“重新发送应用程序”菜单中按下我的应用程序,则到达应用程序的意图与推送的意图相同 需要明确的是,如果用户按下启动器图标,它就不会发生。只有在他按下最近的应用程序时才会发生这种情况 为什么会这样 我甚至试着用新的额外功能做一个setIntent,但它仍然停留在旧

当在我的应用程序中按下通知时,它会转到
onNewIntent()
,并且应用程序正在处理意图中的额外内容。我没有在代码中的任何位置执行
setIntent

除了这种奇怪的行为外,一切正常: 如果在处理通知后,用户按下后退按钮(关闭活动),然后在“重新发送应用程序”菜单中按下我的应用程序,则到达应用程序的意图与推送的意图相同

需要明确的是,如果用户按下启动器图标,它就不会发生。只有在他按下最近的应用程序时才会发生这种情况

为什么会这样

我甚至试着用新的额外功能做一个
setIntent
,但它仍然停留在旧的意图上。 这是为什么?我如何解决这个问题

更新:

extraMatchId = intent.getStringExtra(StaticParams.KEY_MATCH_ID);
    extraUrl = intent.getStringExtra(StaticParams.KEY_URL);

这可能是一个Android bug,也可能是一个特性,这取决于您是否希望它发生;-)这个案例没有明确的记录,但很明显,它的行为方式与您描述的一样


我最近回答了一个类似的问题,并就如何处理这个问题提出了一些建议。有关更多信息,请参阅。

您可以添加一些代码示例吗?我添加了我正在学习的附加代码。您需要添加更多的代码。如果您不在某个地方进行更新,则意图保持不变。当您按下后退按钮时,您的
intent
是否得到更新?根据文档,“注意getIntent()仍然返回原始意图。您可以使用setIntent(intent)将其更新为新意图。”:正如我所说,我尝试使用新意图设置intent,但新意图一直存在,直到用户按下后退。当他使用最近的应用程序回来时,旧的意图又回来了。需要明确的是,如果用户按下启动器图标,它不会发生。只有在他按下最近的应用程序时才会发生这种情况。