Android REORDER_TO_FRONT用户新的Intent

时间:2016-07-05 03:34:35

标签: android android-intent android-activity flags

当我使用FLAG_ACTIVITY_REORDER_TO_FRONT启动活动A并调用Intent intent = getIntent();时,我获得了用于第一次创建活动的Intent而不是使用{{1创建的Intent标志。

我想根据Intent的额外内容更改显示。有没有办法获得新创建的Intent或更改旧intent的Extras?

编辑:请求的示例

使用意图A和附加A启动活动A - >转到另一个活动X - >使用Intent B(FLAG_ACTIVITY_REORDER_TO_FRONT)和Extras B

调用活动A.

现在在活动A中,我想在调用FLAG_ACTIVITY_REORDER_TO_FRONT时获取Intent B,但我总是得到Intent A.也可以,只需将Extras从A更改为B

1 个答案:

答案 0 :(得分:1)

好的,我想我有一个解决方案。如果您使用标志FLAG_ACTIVITY_CLEAR_TOP启动活动A,那么它将在活动A(在这种情况下为活动X)上的后台堆栈上销毁任何内容,并以新意图启动活动A.我在我的机器上尝试了这个并且它有效。

如果您希望活动X保持不变,那么您的后台堆栈看起来像“X - > A”那么您可以覆盖活动A中的onNewIntent()以捕获新意图并设置它并继续使用{{ 1}}开始活动:

FLAG_ACTIVITY_REORDER_TO_FRONT

请注意,如果你这样做,并在活动X和A之间往返,你的背书将如下:“X - > X - > X - > .... - > A”因为X会在靠背上冷却,A会继续向前移动。