ActivityGroup裏面裝的子Activity不執行OnActivityResult()的解決辦法

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

tab activity 中調用startActivityForResult 以獲取子activity的運行結果時,會有一個問題,那就是 onActivityResult 方法沒法被回調。ide

這一般發生在ActivityGroup中,(我估計的,未研究源碼)其緣由在於 從 tab activity 進入 子activity時,ActivityGroup進入了活動棧,而不是tab activity,再設計上應該是有道理的,而不是一個bug。spa

解決方法:.net

1. tab activity中使用設計

 

getParent().startActivityForResult(intent,REQUEST);  


2. 當子activity.finish 返回時,在ActivityGroup實現onActivityResult,內容相似於:code

@Override  blog

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

// 向下傳遞源碼

    YourActivity currentActivity = (YourActivity) getLocalActivityManager()  it

            .getCurrentActivity();  

    currentActivity.onChildActivityResult(requestCode, resultCode, data);  

    } 

onChildActivityResult是一個你本身實現的方法,用來處理返回結果的。

 

參考:

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

相關文章
相關標籤/搜索