gpt4 book ai didi

java - 将包传递给设置为单任务的 Activity

转载 作者:太空宇宙 更新时间:2023-11-03 12:02:22 25 4
gpt4 key购买 nike

所以我有一个运行异步任务的 MapActivity,它偶尔会更新它在 map 上显示的内容(通过字符串)。我最初是在首次创建 Activity 时从 Intent 中传递这个字符串的。然后,如果您单击 map 上的一个可绘制对象,它会打开一个新 Activity ,然后可以使用不同的字符串设置创建一个新的 map View (同一类)。我遇到的问题是我只希望一次运行 mapview 的一个实例。因此,我在 list 中设置了 android:launchmode="singletask"。这是因为它将 mapactivity 带到了前面,但是有没有办法向它发送一个新的Intent bundle 以获得它需要的字符串的新设置?我尝试从包中重新获取额外内容,但它似乎保留了旧包,而不是传递给它的新 Intent 。我不确定是否要执行 startActivityForResult,因为第二个 Activity 可能想要也可能不想更新原始 Activity 。

我希望这是有道理的。如有必要,我可以发布代码,但我认为这应该可以解释我的情况。

最佳答案

当标记为 singleTask 的 Activity 已经在运行并且一个新的 Intent 被发送给它时,onNewIntent会打电话告诉你这件事。

默认情况下,此新 Intent 不会在该调用返回后以任何方式存储,并且默认实现不执行任何操作。如果您覆盖 onNewIntent,您可以直接从那里处理附加到新 Intent 的额外内容和/或使用 setIntent 将新 Intent 附加到您的 Activity,以便将来 getIntent().get*Extra(...) 调用将返回更新后的数据。

请注意,有一种特殊情况:如果您的 singleTask Activity 在其任务中启动了另一个 Activity (即没有 NEW_TASK 标志的可嵌入 Activity ),则该 Activity 将在您的 Activity 时出现在前台收到一个 Intent ,但 Intent 本身将被静静地丢弃。对此要小心。参见 the Dev Guide了解更多信息。

关于java - 将包传递给设置为单任务的 Activity ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2688763/

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