gpt4 book ai didi

android - 从传入的 Intent 中删除额外内容

转载 作者:IT老高 更新时间:2023-10-28 13:24:56 26 4
gpt4 key购买 nike

我有一个搜索屏幕,可以通过单击另一个屏幕的“名称”字段来启动。

如果用户遵循此工作流程,我会在 Intent 的 Extras 中添加一个名为“search”的额外内容。这个额外的使用填充“名称”字段的文本作为其值。创建搜索屏幕后,该额外内容将用作搜索参数,并为用户自动启动搜索。

但是,由于 Android 在屏幕旋转时会销毁并重新创建 Activity,因此旋转手机会再次导致自动搜索。因此,我想在执行初始搜索时从 Activity 的 Intent 中删除额外的“搜索”。

我试过这样做:

    Bundle extras = getIntent().getExtras();
if (extras != null) {
if (extras.containsKey("search")) {
mFilter.setText(extras.getString("search"));
launchSearchThread(true);
extras.remove("search");
}
}

但是,这不起作用。如果我再次旋转屏幕,Activity 的 Intent 的 Extras 中仍然存在“搜索”额外内容。

有什么想法吗?

最佳答案

我已经成功了。

似乎 getExtras() 创建了 Intent 附加内容的副本

如果我使用以下行,则可以正常工作:

getIntent().removeExtra("search");

getExtras()的源代码

/**
* Retrieves a map of extended data from the intent.
*
* @return the map of all extras previously added with putExtra(),
* or null if none have been added.
*/
public Bundle getExtras() {
return (mExtras != null)
? new Bundle(mExtras)
: null;
}

关于android - 从传入的 Intent 中删除额外内容,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4520961/

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