在我的Android应用程序中,我有一个侦听网络相关意图的广播接收器(android.net.conn.CONNECTIVITY_CHANGE)。 每当网络连接发生变化时,广播接收器就会收到意图,并且需要将新的连接状态传递给服务。此服务会跟踪设备的连接状态。 接下来,我有一个活动,必须与服务通信以查找设备的连接状态,并根据连接状态执行某些操作。 处理与服务的广播接收器的通信以及接下来与服务的活动的最佳方式是什么。
答案 0 :(得分:2)
有很多方法可以做到这一点,没有“最好的方法”。这完全取决于这些组件之间的其他通信。
Activity
可以使用Service
Intent
上的附加内容向startService()
发送数据。
Service
可以使用Activity
Intent
startActivity()
发送数据
Service
可以使用广播Intent
中的附加内容将数据发送到任何组件。其他组件(活动,广播接收器等)可以注册BroadcastReceiver
来监听来自Service
的数据。
Activity
也可以绑定到Service
,这将允许使用方法调用(AIDL)在Activity
和Service
之间进行双向通信。这些方法调用可以是同步的也可以是异步的。
如果组件都在同一个进程中运行,您可以将状态存储在static
变量中并以这种方式共享数据。
您需要查看整个应用程序并查看需要从组件移动到组件的数据,然后选择满足这些要求的方法。