我已经浏览了 Stackoverflow 上的一些主题,但找不到任何足够的答案“多个 Activity 如何与 Android 中的绑定(bind)服务进行通信?”。我的应用程序中有一个简单的绑定(bind)服务和 2 个 Activity 。我已经在服务和 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 如何与一个服务进行通信,但我不知道一个服务如何与两个或多个 Activity 进行通信。
最佳答案
在 Activity B 中与 Service
进行通信的方式与在 Activity A 中的操作方式相同。我假设您正在注册某种形式的 BroadcastReceiver
来监听来自 Activity A 中的服务的内容。您也可以在 B 中执行此操作,并且两个 Activity 都会收到广播。
如果您想从 Activity B 向服务发送命令,只需使用常用的 startService
将 Intent 发送回服务即可。这不会重新启动您的服务,而只会向服务重新发出一个新命令,您可以通过在服务中实现 onStartCommand
函数来在服务中拦截该命令。您可以借助生命周期图 here 了解有关服务功能的更多信息。 .
因此,您可以在 list 中为这两个 Activity 注册广播接收 Intent ,也可以在代码中通过在 onStart 中开始监听两个 Activity 上的相同 Intent 过滤器,然后在您的暂停。
关于android - android本地服务如何与应用程序中的多个 Activity 进行通信?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13828717/