在两个活动之间跳转,而不在Android中创建新实例(开始时不重新创建)

在两个活动之间跳转,而不在Android中创建新实例(开始时不重新创建),android,android-intent,android-activity,Android,Android Intent,Android Activity,我的应用程序中有两个活动,我想在不创建新实例的情况下进行切换。 这就是流程: 创建活动A,调用并创建活动B,但未完成: Intent myIntent = new Intent(A.this, B.class); myIntent.putExtra(Constants.SCORE_EXTRA, score); startActivity(myIntent); 关于活动B,我再次称之为活动A: Intent myIntent = new Intent(B.this, A.class); myIn

我的应用程序中有两个活动,我想在不创建新实例的情况下进行切换。
这就是流程:
创建活动A,调用并创建活动B,但未完成:

Intent myIntent = new Intent(A.this, B.class);
myIntent.putExtra(Constants.SCORE_EXTRA, score);
startActivity(myIntent);
关于活动B,我再次称之为活动A:

Intent myIntent = new Intent(B.this, A.class);
myIntent.putExtra(Constants.IS_SHOW_GUESS_STATE_EXTRA, true);  
startActivity(myIntent);
此时,由于A和B都被设置为android:launchMode=“singleTask”我在A的
onNewIntent()
中捕捉到新的启动,而A的
onCreate()
未被调用。(正如我所希望和期待的)

然后我想再次调用活动B:(我还尝试设置
Intent.FLAG\u Activity\u REORDER\u to\u FRONT
,但没有成功)

但是这次活动B被重新创建,调用的是
onCreate()
,而不是'onNewIntent()`
我怎样才能回到活动B而不重新创建它


如果您使用的是singleTask,谢谢您

android:launchMode="singleTask"
然后加上

setIntent(scoreIntent); 
打电话之前

startActivity(scoreIntent);
我将按预期完成这项工作


快乐地编码。

如果某项活动保持活跃或不活跃,Android操作系统总是有最后决定权。我不知道您的用例,但我建议创建一个活动,其中包含两个片段。当您需要生命周期回调时,这尤其方便。也许你可以告诉我们更多关于你的用例的信息,这样我们就可以给出一些更有用的提示了?这两个活动是完全不同的,我不认为有两个片段的活动是正确的方法。问题是为什么活动B被终止。这可能是因为Android决定设备内存不足?我不知道:)因为Android可以决定在某个活动不在前台时终止该活动,所以我建议将活动B的状态保存在其onSaveInstanceState()中,并在调用带有非空saveInstanceState或onRestoreInstanceState()的onCreate()时将其恢复到该状态。尝试过,我一直得到
null
保存的InstanceHanks,但它不起作用。它仍然调用onCreate()
startActivity(scoreIntent);