gpt4 book ai didi

android - 使用广播 Intent/广播接收器将消息从服​​务发送到 Activity

转载 作者:IT王子 更新时间:2023-10-28 23:46:21 24 4
gpt4 key购买 nike

所以我了解(我认为)广播 Intent 和接收消息给他们。

所以现在,我的问题/我无法解决的是如何将消息从接收器的 onReceive 方法发送到 Activity 。假设我有一个这样的接收器:

public class ReceiveMessages extends BroadcastReceiver 
{
@Override
public void onReceive(Context context, Intent intent)
{
String action = intent.getAction();
if(action.equalsIgnoreCase(TheService.DOWNLOADED)){
// send message to activity
}
}
}

如何向 Activity 发送消息?

我是否必须在要向其发送消息的 Activity 中实例化接收器并以某种方式对其进行监视?或者是什么?我理解这个概念,但不是真正的应用程序。

任何帮助都会非常棒,谢谢。

汤姆

最佳答案

已编辑更正了注册/注销 BroadcastReceiver 的代码示例,并删除了 list 声明。

ReceiveMessages定义为Activity中的一个内部类,它需要监听来自Service的消息。

然后,声明类变量如...

ReceiveMessages myReceiver = null;
Boolean myReceiverIsRegistered = false;

onCreate() 中使用 myReceiver = new ReceiveMessages();

然后在onResume()...

if (!myReceiverIsRegistered) {
registerReceiver(myReceiver, new IntentFilter("com.mycompany.myapp.SOME_MESSAGE"));
myReceiverIsRegistered = true;
}

...并在 onPause()...

if (myReceiverIsRegistered) {
unregisterReceiver(myReceiver);
myReceiverIsRegistered = false;
}

Service中创建并广播Intent...

Intent i = new Intent("com.mycompany.myapp.SOME_MESSAGE");
sendBroadcast(i);

就是这样。使“操作”对您的包/应用程序唯一,即 com.mycompany... ,如我的示例中所示。这有助于避免其他应用或系统组件可能会尝试处理它。

关于android - 使用广播 Intent/广播接收器将消息从服​​务发送到 Activity ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7276537/

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