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


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


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM