Android IntentService 调用

Android IntentService call

我正在尝试在两台设备之间建立双向连接,一台是服务器,另一台是客户端。由于是双向的,所以都可以发送一个接收数据。

我在我拥有的 Activity 中创建它们,其中列出了我在 phone 上安装的应用程序(过滤了系统应用程序)。然后我有一个用于该列表的适配器,我在其中为该列表的项目定义了一个侦听器。 基本上,如果我按下列表中的一项,我想向另一台设备发送消息。

那么,如果在 onHandleIntent() 方法中我正在等待消息,我应该将发送消息的代码放在哪里?

编辑:我可以为发送部分创建另一个服务,但这将使我创建 4 个服务,2 个用于客户端(发送和接收),另外 2 个用于服务器(再次发送和接收)。

IntentService 具有以下行为:

All requests are handled on a single worker thread -- they may take as long as necessary (and will not block the application's main loop), but only one request will be processed at a time.

来自 the docs。同一个 IntentService 不应该同时做两件事——如果它正在监听(我猜 onHandleIntent 中有一个 while 循环?),那么在它监听时发送给 IntentService 的任何消息都不会被处理。 他们将排队直到收听完成,然后发送。 您可以创建两个 IntentService(一个用于发送,一个用于接收),或者创建一个新的服务来启动自己的线程,该线程可以同时发送和收听。

我认为由不同的服务完成发送和接收会更容易。