我有下一个UI hierarhy:
FragmentActivity
- > Fragment
TabHost
和LocalActivityManager - > MyNestedActivity
MyNestedActivity位于Fragment
的单个标签中。当我在MyNestedActivity中调用startActivityForResult()
时,Activity
正常启动,但onActivityResult()
从未调用过。
但如果我使用startActivity()
打开MyNestedActivity,onActivityResult()
就可以了。
什么时候我必须挂钩onActivityResult()
?在FragmentActivity
的{{1}}中?我必须如何将结果发送到MyNestedActivity?
解决:
在此UI中,未调用hierarhy Fragment
。我只是将MyNestedActivity更改为onActivityResult()
,我的层次结构变为Fragment
- > FragmentActivity
。现在Fragment
工作正常。
答案 0 :(得分:2)
onActivityResult()
中的 Activity
未被Android调用。
获取活动导致嵌套活动的正确方法是:
startActivityForResult()
的 Activity
(不是来自嵌套!),
在主持人Activity
,
Activity
个结果
将Activity
结果发送给嵌套Activity
。
答案 1 :(得分:0)
如果要从Fragment中调用startActivityForResult()
,则必须在Fragment类中设置onActivityResult()
方法,而不是在主机Activity中。有关更多信息,请参阅this link。
答案 2 :(得分:0)
我们遇到了这个https://groups.google.com/forum/?fromgroups=#!topic/android-developers/65oLmvIlgFM问题并通过将活动launchMode更改为其他singleInstace或singleTask来解决。