我正在开发一个Android项目,其中服务需要发送包含数据(简称string
)的广播到一个或多个活动这不是同一个应用程序的一部分,它们是不同的应用程序。
如果我发送的广播包含intent
中的数据,那么接收广播的应用会自动启动,还是仅在用户启动活动时才会收到?
我个人需要的是发送数据的广播,然后只有当用户启动应用时,它才会从{{1}获取string
数据}}
答案 0 :(得分:1)
默认情况下,如果您发送广播意图,Broadcast Receivers(注册您的意图)将立即收到意图。
但是,要接收您的广播,您希望接收广播的应用程序应该为您的意图“注册”Boradcast Receiver(就像在android_manifest.xml中声明的那样,并在标记内部为您的意图进行了正确的操作映射)
请注意,广播永远不会创建活动/启动活动。它们被“广播接收器”接收,这是另一种类型
答案 1 :(得分:0)
在这种情况下,您可以让服务将String写入SharedPreference
,然后发送广播。如果活动已经打开,它可以直接读取字符串。如果用户稍后打开活动,它可以检查SharedPreference
中是否有任何内容,然后阅读它(然后将其清除,以便只读取一次)。