gpt4 book ai didi

java - Android:Intent Extras 未通过 Activity 上下文之外的 startActivity() 传递

转载 作者:行者123 更新时间:2023-12-01 18:22:13 25 4
gpt4 key购买 nike

我有一个类可以监听短信广播,然后在同一应用程序中打开一个 Activity 来显示消息。这是一个更大项目的一部分。

由于广播类不扩展 Activity 类,因此调用具有 Intent 的 Activity 需要我使用 Intent.FLAG_ACTIVITY_NEW_TASK 对其进行标记。

现在, Intent 有一个额外的内容(短信和一些参数作为单个字符串),我想随 Intent 一起发送。一切都很顺利,但附加内容没有按原意发送。

这是我的代码来自广播类

//After getting the message into String S and doing some process
Intent inte = new Intent(context.getApplicationContext(), StartApp.class);
inte.putExtra("messageAsString", S.toString()); //Where S is declared somewhere
inte.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
context.startActivity(inte);

从 onCreate() 方法中接收 Intent 的 Activity

if(getIntent().hasExtra("messageAsString")) {
String message = getIntent().getStringExtra("messageAsString").toString();
Toast toast = Toast.makeText(this, "Received SMS: " + message , Toast.LENGTH_LONG);
toast.show();
}

应用程序可能已经在运行,主页按钮已被按下。无论哪种方式,我想要实现的是,当注册的接收者收到消息时,我想自动启动一个 Activity 并将消息及其元数据传递给它。

我知道我在某个地方遗漏了一些东西,但我会感谢您的迅速帮助

最佳答案

您还需要处理 onNewIntent(),如果 Activity 已存在并且 startActivity() 将现有实例带回前台,则可能会调用该方法。你的额外内容可能就在那里。

关于java - Android:Intent Extras 未通过 Activity 上下文之外的 startActivity() 传递,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27380797/

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