我有一个活动A,它用startActivityForResult启动一个新的活动B。
活动B使用FLAG_ACTIVITY_CLEAR_TOP重新启动几次,所以当用户单击back时,B使用setResult()进行数据处理,然后返回到活动A。
然而,数据丢失了。默认情况下,调用A中的onActivityResult时意图为null和resultCode。
我知道,事实上,这是正确的行为,因为FLAG_ACTIVITY_CLEAR_TOP放弃了以前的活动,但我想知道是否有一些解决办法来实现这一点(除了明显的选择,如避免重新启动B)
发布于 2015-07-13 15:51:02
重新启动活动B时,将FLAG_ACTIVITY_CLEAR_TOP和FLAG_ACTIVITY_SINGLE_TOP添加到启动意图中。
activityBIntent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP | Intent.FLAG_ACTIVITY_SINGLE_TOP);此外,重新启动活动B将调用onNewIntent(Intent),但是getIntent()仍将提供较旧的(原始)意图。
注意,getIntent()仍然返回原始意图。您可以使用更精确的setIntent(意图)将其更新到这个新的意图。
https://stackoverflow.com/questions/17148246
复制相似问题