onActivityResult()永远不会在嵌套的Activity中调用

时间:2012-04-26 06:03:11

标签: android android-activity android-fragments android-tabhost

我有下一个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工作正常。

3 个答案:

答案 0 :(得分:2)

嵌套onActivityResult()中的

Activity未被Android调用。

获取活动导致嵌套活动的正确方法是:

    来自主机startActivityForResult()
  1. Activity(不是来自嵌套!),

  2. 在主持人Activity

  3. 中收到Activity个结果
  4. 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来解决。