gpt4 book ai didi

java - 我可以从应用程序中的另一个 Activity 更新一个 Activity 中的数据成员吗?

转载 作者:行者123 更新时间:2023-11-29 04:01:11 25 4
gpt4 key购买 nike

我试过这个并且它有效,但我不知道这是否是一件坏事,因为 Activity 之间数据传输的所有帮助似乎都使用了 Intent 。

在 MainActivity 中我有:

static PilotRecord pilotRecord = new PilotRecord(); //PilotRecord just contains data item declarations

在 MainActivity.onCreate 中:

pilotRecord.fuel = 100;

在 MainActivity.onClick 中:

Intent intent = new Intent(this, SubActivity.class);
startActivityForResult(intent, 0);

在 SubActivity.onCreate 我有:

MainActivity.pilotRecord.fuel = 200;

在 SubActivity.onClick 中:

MainActivity.pilotRecord.fuel = 300;
setResult(RESULT_OK);
finish();

当我启动 MainActivity 时,燃料值为 100

如果我在 MainActivity 中单击,SubActivity 会按预期显示

如果我在 SubActivity 中单击,将显示 MainActivity,燃料值现在为 300

如果我按下“后退”按钮,将显示 MainActivity,燃料值现在为 200

有谁知道这有任何潜在的问题,因为对我来说这似乎比设置 Intent 等更简单。

  • 弗林克

最佳答案

据我了解,您的操作会导致数据丢失。

SubActivity 不应操纵调用它的 Activity 的数据。我认为不能保证您的 MainActivity 甚至存在...

当您的 SubActivity 发出准备返回 MainActivity 的信号时,系统可能会决定随时终止它并重新启动它。

您应该将数据打包传回,让 MainActivity 根据结果修改其数据。

    Bundle stats = new Bundle();
stats.putString("fuel","300");
setResult(RESULT_OK, "PilotRecord", stats);
finish();

此外,请记住,当在 MainActivity 中调用 onPause() 时,您应该将“Fuel”级别保存到某种持久存储中。

我建议阅读 documentation for Activity小心,因为实现正确的回调非常重要。

关于java - 我可以从应用程序中的另一个 Activity 更新一个 Activity 中的数据成员吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3463347/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com