当我使用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中,我想在调用FLAG_ACTIVITY_REORDER_TO_FRONT
时获取Intent B,但我总是得到Intent A.也可以,只需将Extras从A更改为B
答案 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会继续向前移动。