轉自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