轉自:http://m.blog.csdn.net/article/details?id=49507025測試
摘取片斷以下this
我的測試後的一些總結:
一、Fragment中直接使用startActivityForResult(); 不要使用this.getActivity().startActivityForResult();.net
二、Fragment依附的Activity中若是重寫了onActivityResult()方法,該方法中必須加上super.onActivityResult(requestCode, resultCode, data);( 要麼在Activity中不重寫onActivityResult()方法,親測可用)。Fragment中的onActivityResult()方法中加不加super.onActivityResult(requestCode, resultCode, data)這句代碼對結果沒有影響。blog
三、startActivityForResult()方法剛一調用,還沒等activity返回,onActivityResult()方法已經執行完了。(親測:執行順序是:Fragment中的onActivityResult()先執行,Activity中的onActivityResult()後執行)出現上面問題的緣由多是:
① manifest中CaptureActivity 或者 HYSubActivity 的activity設置了launchMode屬性,其值不是標準模式(standard)。
解決辦法就是把launchMode屬性去掉或者設置爲標準模式。
② Fragment在startActivityForResult的時候,使用了Intent.FLAG_ACTIVITY_NEW_TASK,跳轉到新的任務棧致使onActivityResult()被執行。
解決辦法就是不要使用Intent.FLAG_ACTIVITY_NEW_TASK開啓Activity,其餘的方式是否可行未作測試。get