gpt4 book ai didi

android - 将附加信息传递给 backstack 上的 Activity (按 BACK 键)

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

我如何将附加信息传递给后台堆栈中先前的 Activity ?当用户按下 BACK 按钮时,我想做类似的事情:

intent.putExtra("playlist", playlist);
intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
intent.addFlags(Intent.FLAG_ACTIVITY_SINGLE_TOP);
intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);

我想它必须在 onStop() 方法中,但我如何识别将恢复的 Activity ?我找到了类似 getParentActivityIntent() 的东西,但我无法清楚地理解文档,我不知道它是否是我需要的。

-----编辑------

我会尝试用其他方式解释。

在 ActivityA 中,我启动了一个新的 ActivityB 并传递了一些 Extra:

Intent intent = new Intent(this, ActivityB.class);
int var = 3;
intent.putExtra("var", var);
intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
intent.addFlags(Intent.FLAG_ACTIVITY_SINGLE_TOP);
intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
startActivity(intent);

在 ActivityB 中我可以做:

if (getIntent().hasExtra("var")) {
var = getIntent().getIntExtra("var");
var = var + 2;
}

现在,在按下 BACK 按钮后,用户返回到 ActivityA。其中 var = 3。但我想从 ActivityB 传递 var 的新值。我想在 ActivityA 中有 var = 5。我怎样才能做到这一点?我在文档中找不到对“先前” Activity 的引用(在本例中为 ActivityB 中的 ActivityA)。

最佳答案

我认为你尝试做的事情是不可能的,但你至少有两个选择。

不使用startActivity,而是在ActivityA中使用startActivityForResult并覆盖onActivityResult。在 Activity B 中,您必须在 onBackPressed 中实现如下内容:

Intent returnIntent = new Intent();
returnIntent.putExtra("result",result);
setResult(RESULT_OK,returnIntent);
finish();

更多信息:How to manage `startActivityForResult` on Android?

第二个选项是在整个应用程序期间创建共享变量(例如 by extend android.app.Application class )。在 ActivityB 中设置此变量并在 ActivityA 中读取。

关于android - 将附加信息传递给 backstack 上的 Activity (按 BACK 键),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26534588/

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