問題
一次開發中,突然發現Fragment中的onActivityResult方法不回調了?使用的fragment是v4版本的,調用的是fragment的startActivityForResult()。
排查
首先檢查fragment所在Activity,發現Activity中存在onActivityResult,fragment發起startActivityforResult後這裏是會被調用的,但是fragment中的不調用。這時如果把Activity中的onActivityResult去掉,fragment中又可以回調了,那麼問題很明確是出在Activity中了.
解決
原因是Activity的onActivityResult,如果想把result繼續傳到子Fragment中,必須調用 super.onActivityResult(requestCode, resultCode, data);
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
}