在两个正在运行的活动之间传递数据

时间:2019-07-11 08:19:35

标签: java android android-intent

我需要将数据从一项活动传递到另一项活动。第一次没有问题,因为创建了一个新的意图。我的问题是我使用了标志FLAG_ACTIVITY_REORDER_TO_FRONT,因为我不想破坏该活动,因为我不想每次切换活动时都进入onCreate。我的问题是,如何从两个正在运行的活动中传递数组?

我正在android studio中创建一个类似于Yatzy的游戏。在一项活动中,掷骰子,在另一项活动中,您在记分板上设置分数。每次将玩家导航到记分板时,都会显示所有可能的结果,除了已选择的结果(在这些地方,您会看到所选择的结果),然后玩家可以选择一个分数,例如“满屋”。当我在两个活动之间导航时,我不想破坏它们,因为它们包含我不想重置的信息。因此,我使用FLAG_ACTIVITY_REORDER_TO_FRONT,但是当我使用它时,未显示骰子的新组合,它仅显示了骰子的第一个组合。

这是我从MainActivity传递数据的时间:

Intent openMainActivity= new Intent(MainActivity.this, ScoreboardActivity.class);
openMainActivity.putExtra("scoreList", game.showScoreAlt());
openMainActivity.setFlags(Intent.FLAG_ACTIVITY_REORDER_TO_FRONT));
startActivity(openMainActivity)

这是我在其他活动中收到数据的时间:

Bundle extras = getIntent().getExtras();
scoreList = extras.getIntArray("scoreList");

1 个答案:

答案 0 :(得分:1)

您可以尝试这种 Activity.onNewIntent()方法。

@Override
protected void onNewIntent(Intent intent) {
    super.onNewIntent(intent);
    setIntent(intent);
}

Reference