2016-11-03 12 views
-2

私はonActivityResult()が正しい要求コードとヌルインテントパラメータで呼び出されているプログラムを持っています。そして、そのアクティビティがsetResult()を呼び出すときにonactivityresultは呼び出されません。 startActivityForResult後に呼び出さonActivityResult()()onActivityResultがsetResultの前に呼び出されました

public void placeListActivity(View view) { 

    Intent placeListIntent = new Intent(this, 
      PlaceListActivity.class); 
    // startActivity(placeListIntent); 
    this.startActivityForResult(placeListIntent, 5); 
} 

protected void onActivityResult(int request, int result, Intent arg2) { 
    super.onActivityResult(request, result, arg2); 


    if (request == 5 && result == Activity.RESULT_OK) { 
     handleOnActivityResult(); 
    } 

第二の活動:あなたはだけなので、意思のresultCodeを送信している

@Override 
public void onBackPressed() { 

    if(status){ 
     setResult(Activity.RESULT_OK); 
     finish(); 
    }else{ 
     super.onBackPressed(); 
    } 




} 
+0

[例](http://www.javatpoint.com/android-startactivityforresult-example)を確認してください。あなたは間違ったことをしていますが、あなたはまだあなたのコードを投稿し、さらに説明してください、AndroidのonActivityResult()はバグなく適切に呼び出されます。 –

+0

この問題は以下のAPIレベル17の場合のみ –

+0

コードを投稿してください。あなたの説明は理解しづらい。何が起きているのか、何が起こるべきかを説明してください。 –

答えて

0
setResult(Activity.RESULT_OK); 

はnullに受信されます。 setResultメソッド内のresultCodeを含むインテントを2番目のパラメータとして送信します。あなたは最初の活動でその意思を得るでしょう。

setResult method signature

注: -アクティビティの起動モードがsingleTaskかsingleTopある場合は、onActivityResultができるだけ早く活動は、データはnullで開始されたとして呼び出されます。これを防ぐには、Intent.setFlags(0)を使用してデフォルトのフラグをリセットします。

+0

私の問題はsetResultの前にonActivityResultが呼び出されました。 –

+0

この問題はいくつかのAPIレベルでのみ発生します。これはうまくいきました。私の活動起動モードをsingleTaskからsingleTask.isに変更しました。代わりに仕上げ 'の –

+0

は()')(super.onBackPressed '書き込み;' –

関連する問題