PAHO MQTT Android客户端,用于服务和主要活动BinderProxy

PAHO MQTT Android客户端,用于服务和主要活动BinderProxy,android,service,client,mqtt,paho,Android,Service,Client,Mqtt,Paho,我也是MQTT和PAHO MQTT客户机库的新手。我正在寻找使用android客户端库的最佳实践 我有一个后台服务应用程序,它在后台将信息发布到mqtt代理。所以我在后台服务中创建了一个mqtt客户机,消息的发布工作正常 但我还需要在主活动中使用mqtt客户机,以便从mqtt代理接收不同的信息。当我尝试在主活动(主线程)中创建客户机时,收到异常“java.lang.ClassCastException:android.os.BinderProxy无法转换为…”。我发现了一些关于这个问题的信息,我

我也是MQTT和PAHO MQTT客户机库的新手。我正在寻找使用android客户端库的最佳实践

我有一个后台服务应用程序,它在后台将信息发布到mqtt代理。所以我在后台服务中创建了一个mqtt客户机,消息的发布工作正常

但我还需要在主活动中使用mqtt客户机,以便从mqtt代理接收不同的信息。当我尝试在主活动(主线程)中创建客户机时,收到异常“java.lang.ClassCastException:android.os.BinderProxy无法转换为…”。我发现了一些关于这个问题的信息,我认为这个问题存在于应用程序中的多个mqtt服务中,但我不知道如何在服务和主应用程序之间共享mqtt客户机的一个实例,我也不知道这是否是正确的解决方案

在清单中,我有:

...
<service android:name=".MyBackgroundService" android:process=":remote" />
<service android:name="org.eclipse.paho.android.service.MqttService" android:process=":remote" >
...
。。。
...
你能帮我找到正确的解决方案吗


谢谢。

您可以使用EventBus通过服务向活动发送消息。

您可以在活动中绑定到您的服务,在服务中实现一些方法以通过回调发送消息和接收消息谢谢,我可以为相同的MQTT代理执行此操作。但是,如果我需要将主应用程序连接到不同的代理,该怎么办?是的,我想。但当我尝试将第二个MqttAndroidClient连接到第二个服务器(在主线程中)时,出现了BinderProxy异常。