0

B が再起動された後、アクティビティ A->B->A からの移動に問題があります。B の終了後にインテントが A に返される方法を混乱させることなく、アクティビティ B を再開するにはどうすればよいですか?

B は、次のコードで A から呼び出されます。

    public void activityFunction(Context gameContext){
    //This function was made to pass the player class back and forth between 

    setContentView(R.layout.loadingscreen);
    Intent i = new Intent(gameContext, gamePanel.class);
    i.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
    i.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
    startActivityForResult(i,1);
    }

B ゲーム アクティビティは次のコードでリセットされます。

        setContentView(R.layout.loadingscreen);
        Intent i = getIntent();
        finish();
        startActivity(i);

B が終了し、次のコードで A に戻ります。

    public void levelOver(){
        setContentView(R.layout.loadingscreen);
        Intent resultIntent = new Intent();
        resultHolder results = new resultHolder(playerStats);
        resultIntent.putExtra(.......);
        resultIntent.putExtra(.......);
        resultIntent.putExtra(.......);
        resultIntent.putExtra(.......);
        setResult(Activity.RESULT_OK, resultIntent);
        finish();
        }

そして、ここで onActivity が A で呼び出されます

protected void onActivityResult(int requestCode, int resultCode, final Intent data) {
    super.onActivityResult(requestCode, resultCode, data);
    switch(requestCode) {
    case (1) : {
         if (resultCode == Activity.RESULT_OK) {
         returnedWithResults = true;
         new AsyncReturnGameData().execute(data);
      }
      break;
    } 
  }
}

アクティビティ B は、再起動されない限り、100% の時間を返します。再起動すると、エラーが返されます。私を正しい方向に向ける助けがあれば、大歓迎です。ありがとう!

4

1 に答える 1

0

これを変更してみてください:

 setContentView(R.layout.loadingscreen);
        Intent i = getIntent();
        finish();
        startActivity(i);

これに:

 setContentView(R.layout.loadingscreen);
    Intent i = getIntent();       
    startActivity(i);
    finish();
于 2012-09-05T22:58:48.463 に答える