gpt4 book ai didi

android - 从 bundle 中删除条目(即附加内容)似乎无法与后退按钮结合使用

转载 作者:塔克拉玛干 更新时间:2023-11-02 07:59:21 25 4
gpt4 key购买 nike

我有一个 BroadcastReceiver 可以收听传入的 SMS。如果消息来自某个发件人,则 BroadcastReceiver 使用以下代码启动我的应用程序:

final Intent activityIntent = new Intent(context, MainActivity.class);
activityIntent.putExtra("smsChallenge", smsText);
activityIntent.putExtra("smsSenderNumber", senderMobilNumber);
activityIntent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
activityIntent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
context.startActivity(activityIntent);

在我的应用程序的 MainActivity 中(即在 onCreate() 中),我从 Intent 中提取值 smsChallenge 并使用以下代码在提取后删除它:

Bundle extras = getIntent().getExtras();
if (extras != null) {
smsChallenge = extras.getString("smsChallenge");
extras.remove("smsChallenge");
}

所以我的应用程序从 SMS 启动并运行良好......但是如果我选择按下返回按钮并重新启动应用程序(即通过任务管理器),值 smsChallenge 仍然在 bundle extras。这意味着,我重新启动的应用程序认为它是由于一条新的 SMS 而重新启动的,但事实并非如此......

为什么在使用“返回”按钮并再次重新启动应用程序时从 bundle 中删除键值似乎不起作用?有什么想法吗?

最佳答案

因为 getExtras() 创建了一个 intent extras 的副本。

你必须这样做

getIntent().removeExtra("smsChallenge");

文档:http://developer.android.com/reference/android/content/Intent.html#removeExtra(java.lang.String)

关于android - 从 bundle 中删除条目(即附加内容)似乎无法与后退按钮结合使用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10015170/

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