2016-04-27 13 views
0

これは別の投稿と似ていますが、それは決して本当に答えられませんでした。ネストされたstartActivityForResult()は前のアクティビティに戻りません

アクティビティを使用し、フラグメントではなく、アクティビティグループ またはタブを使用していません。

マイMainActivityは後でstartActivityForResult、 でDialogActivityを呼び出しますが、ときDialogActivityが終了し、setResultを使用し、LocationActivityでonActivityResultが呼ばれることはありません を終えたstartActivityForResult でLocationActivityを呼び出し、それが戻ってMainActivityでonActivityResultに すべての道を行きます。

すべてのアクティビティのプロパティは「空白」で、noHistoryはデフォルトではfalseです。

(MainActivity) 
Intent intent = new Intent(getApplicationContext(),  LocationActivity.class); 
startActivityForResult(intent, Constants.LOCATION_ACTIVITY); 

@Override 
protected void onActivityResult(int iRequestCode, int iResultCode, Intent intentData) 
{ 
    super.onActivityResult(iRequestCode, iResultCode, intentData); 
} 

(LocationActivity) 
Intent intent = new Intent(getApplicationContext(), DialogActivity.class); 
startActivityForResult(intent, Constants.DIALOG_ACTIVITY); 

@Override 
protected void onActivityResult(int iRequestCode, int iResultCode, Intent intentData) 
{ 
    super.onActivityResult(iRequestCode, iResultCode, intentData); 
} 

(DialogActivity)  
Intent intent = new Intent(); 
setResult(Activity.RESULT_OK, intent); 
finish(); 

それでは、私はDialogActivityが終了した後に呼び出さするLocationActivity でonActivityResultを取得するために変更しなければならないのではなく、MainActivityでonActivityResult ?そして、LocationActivityを終了した後、私は のために、MainActivityのonActivityResultが最終的に呼び出されるようにしたいと思います。

ありがとうございます!

+0

これらのアクティビティ宣言をマニフェストから追加できますか? – Asimaruk

+0

あなたはこのディスカッションを見ましたか? http://stackoverflow.com/questions/9689001/activity-started-with-startactivityforresult-not-returning-to-calling-activity?rq=1 –

+0

はい、私はやりました。コンテキストを変更して、アクティビティ名を使用するようにしましたが、動作しませんでした。noHistoryを使用するように設定されたアクティビティプロパティはありません。 – user1572522

答えて

0

私は同じコンテキストで両方のインテントを作成すると思います。 getApplicationContext()の代わりにthis(現在のアクティビティ)を使用してみてください。

+0

使用するインテントを変更しようとしました:MainActivity.thisおよびLocationActivity.this MainActivityのonActivityResult()が呼び出され続けます。 – user1572522

+0

ああ、アクティビティ定数がすべて> 0であることも確認しました。 – user1572522

関連する問題