在 B 重新启动后,我在从活动 A->B->A 出发时遇到了一些麻烦。如何在 B 完成后重新启动活动 B 而不会弄乱如何将意图返回给 A?
使用以下代码从 A 调用 B:
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();
}
这是在 A 中调用 onActivity 的地方
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% 的时间返回。当它重新启动时,它会返回一个错误。任何为我指明正确方向的帮助将不胜感激。谢谢!