gpt4 book ai didi

android - android本地服务如何与应用程序中的多个 Activity 进行通信?

转载 作者:行者123 更新时间:2023-11-29 21:53:31 25 4
gpt4 key购买 nike

我浏览了一些关于 Stackoverflow 的主题,但找不到任何足够的答案“多个 Activity 如何与 android 中的绑定(bind)服务通信?”。我在我的应用程序和 2 个 Activity 中有一个简单的绑定(bind)服务。我已经在服务和 Activity 之间建立了通信,但现在我在我的应用程序中又添加了一个 Activity 。

作为主要 Activity 的 Activity A 将从服务中获取一些数据。服务正在与 Servlet 通信并从 servlet 获取数据,我将把这些数据发送到 Activity A,此 Activity 将显示数据。我通过单击按钮从 Activity A 调用新 Activity 。 Activity A 将向 Activity B 发送一些数据。我正在使用 Intent 在 Activity A 和 B 之间共享数据。Activity B 有一些按钮可以更新 Activity B 中的数据并将其发送到服务和服务将响应发送回 Activity B。

我知道一个 Activity 如何与服务通信,但我不知道服务如何与 2 个或更多 Activity 通信。

最佳答案

在 Activity B 中与 Service 通信的方式与在 Activity A 中相同。我假设您正在注册某种形式的 BroadcastReceiver 来监听来自 Activity A 中的服务的事情。您也可以在 B 中执行此操作,并且两个 Activity 都将收到广播。

如果您想从 Activity B 向服务发送命令,只需使用常用的 startService 将 intent 发送回服务即可。这不会重新启动您的服务,而只是向服务重新发出一个新命令,您可以通过在服务中实现 onStartCommand 函数来在服务中拦截该命令。您可以借助此生命周期图了解更多关于服务功能的信息,here .

因此,您可以在两个 Activity 的 list 中注册您的广播接收 Intent ,或者您可以通过在 onStart 中开始收听两个 Activity 的相同 Intent 过滤器并在您的暂停。

关于android - android本地服务如何与应用程序中的多个 Activity 进行通信?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13828717/

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