16

我正在开发使用 getIntent() 读取捆绑信息的应用程序。我想将其中一个捆绑字段设置为空,以便在随后的简历中收到修改后的意图,但我不断从 getIntent() 获得相同的意图。我注意到在按下后退键之后会产生一个新的意图,但不是其他的。

 intent.getExtras().getInt("FLAG_FIELD") returns 1
 intent.getExtras().setString("FLAG_FIELD", null);

但是当 Activity 再次恢复时,getInt() 仍然返回一个值而不是 null。不确定如何清除包中的 Int 字段。

刚刚尝试更新:

intent.getExtras().putInt("FLAG_FIELD, -1); 

这也行不通。看起来来自 getIntent() 的意图无法更改。

更新:在活动变得可见之前,onResume() 会在调试器中连续调用 3 次?因此,即使我在这里设置了一个标志,它似乎也很难改变状态,因为我无法判断哪个 resume() 调用是实际显示之前的最后一个调用。

4

2 回答 2

21

您可以在那里覆盖onNewIntent()和更改附加功能。 是相关的文档。在此方法之后,您onResume()将被调用,我认为这就是您所追求的

于 2012-12-11T23:18:48.687 回答
0

就我而言,我的问题是所选意图标志的错误。我不工作的代码是:

notificationIntent.setFlags((Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_CLEAR_TASK));

现在我解决了

 notificationIntent.setFlags((PendingIntent.FLAG_UPDATE_CURRENT));

是的,不是最好的解决方案,但它有效

于 2016-06-07T14:32:14.390 回答