gisdream

转自http://blog.csdn.net/snakewarhead/article/details/7976831

tab activity 中调用startActivityForResult 以获取子activity的运行结果时,会有一个问题,那就是 onActivityResult 方法无法被回调。

这通常发生在ActivityGroup中,(我估计的,未研究源码)其原因在于 从 tab activity 进入 子activity时,ActivityGroup进入了活动栈,而不是tab activity,再设计上应该是有道理的,而不是一个bug。

解决方法:

1. tab activity中使用

 

getParent().startActivityForResult(intent,REQUEST);  


2. 当子activity.finish 返回时,在ActivityGroup实现onActivityResult,内容类似于:

@Override  

protected void onActivityResult(int requestCode, int resultCode, Intent data) {  

// 向下传递

    YourActivity currentActivity = (YourActivity) getLocalActivityManager()  

            .getCurrentActivity();  

    currentActivity.onChildActivityResult(requestCode, resultCode, data);  

    } 

onChildActivityResult是一个你自己实现的方法,用来处理返回结果的。

 

参考:

http://stackoverflow.com/questions/6677466/stuck-with-getting-camera-pic-when-using-the-tab-activity

分类:

技术点:

相关文章:

  • 2021-08-06
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
猜你喜欢
  • 2022-03-09
  • 2021-09-03
  • 2022-12-23
  • 2022-12-23
  • 2021-12-24
  • 2022-12-23
  • 2022-12-23
相关资源
相似解决方案