首先說說本人碰到的于onActivityResult不執行的情況。(網上找了很久都沒有人碰到)
1.直接上代碼說明
ActivityA的代碼:(放在onCreate方法中)
[java] view plaincopyIntent intent = new Intent(ActivityA.this, ActivityB.class); Bundle bundle = new Bundle(); bundle.putString("abc", "aaaaaaaaaaa"); intent.putExtra("bundle", bundle); startActivityForResult(intent,<span style="color:#ff0000;"> RESULT_OK</span>);ActivityB的代碼:
[java] view plaincopyIntent intent = getIntent(); ActivityB.this.setResult(<span style="color:#ff0000;">RESULT_OK</span>, intent); ActivityB.this.finish();
如上代碼紅色標注單詞,如果startActivityForResult此處寫得是RESULT_OK(此處的RESULT_OK值為負數),則在finish到ActivityB之后,ActivityA中的onActivityResult方法不會執行。
-----------------------------------------------------------------------------------------------------以下是網上其他人總結的---------------------------------------------------------------------------------------
奇怪問題 startActivityForResult() 后直接調用 onActivityResult()開發人員都知道,可以通過使用 startActivityForResult() 和 onActivityResult() 方法來傳遞或接收參數。然而在一次使用中,還沒等到被調用的 Activity 返回,onActivityResult() 就被執行了。找了半于,才得知,這與 Activity 的加載模式(launchMode)有關,該屬性可以在 AndroidManifest.xml 中設置。
原先將其設為 launchmode="SingleTask",經測試,所有需要傳遞或接收的 Activity 不允許設置該屬性,或只能設為標準模式,否則系統將在 startActivityForResult() 后直接調用 onActivityResult()。
3.是不是用了ActivityGroup啊,我遇到用了ActivityGroup執行不了
轉自:http://blog.csdn.net/y150481863/article/details/8461246首先說說本人碰到的于onActivityResult不執行的情況。(網上找了很久都沒有人碰到)
1.直接上代碼說明
ActivityA的代碼:(放在onCreate方法中)
[java] view plaincopyIntent intent = new Intent(ActivityA.this, ActivityB.class); Bundle bundle = new Bundle(); bundle.putString("abc", "aaaaaaaaaaa"); intent.putExtra("bundle", bundle); startActivityForResult(intent,<span style="color:#ff0000;"> RESULT_OK</span>);ActivityB的代碼:
[java] view plaincopyIntent intent = getIntent(); ActivityB.this.setResult(<span style="color:#ff0000;">RESULT_OK</span>, intent); ActivityB.this.finish();
如上代碼紅色標注單詞,如果startActivityForResult此處寫得是RESULT_OK(此處的RESULT_OK值為負數),則在finish到ActivityB之后,ActivityA中的onActivityResult方法不會執行。
-----------------------------------------------------------------------------------------------------以下是網上其他人總結的---------------------------------------------------------------------------------------
奇怪問題 startActivityForResult() 后直接調用 onActivityResult()開發人員都知道,可以通過使用 startActivityForResult() 和 onActivityResult() 方法來傳遞或接收參數。然而在一次使用中,還沒等到被調用的 Activity 返回,onActivityResult() 就被執行了。找了半于,才得知,這與 Activity 的加載模式(launchMode)有關,該屬性可以在 AndroidManifest.xml 中設置。
原先將其設為 launchmode="SingleTask",經測試,所有需要傳遞或接收的 Activity 不允許設置該屬性,或只能設為標準模式,否則系統將在 startActivityForResult() 后直接調用 onActivityResult()。
3.是不是用了ActivityGroup啊,我遇到用了ActivityGroup執行不了
轉自:http://blog.csdn.net/y150481863/article/details/8461246新聞熱點
疑難解答