弓背霞明剑照霜,秋风走马出咸阳。这篇文章主要讲述使用activity方法后,Android应用程序与RabbitMQ断开连接相关的知识,希望能为你提供帮助。
我正在尝试将RabbitMQ实现到我的android应用程序中,但是当我尝试调用外部函数时连接丢失时,在handleDelivery
方法中有一个问题。
private fun initRabbitmq () {
factory.setUri("someURI")
subscribeThread = Thread(object : Runnable {
override fun run() {
val connection: Connection = factory.newConnection()
val channel: Channel = connection.createChannel()
val consumer: DefaultConsumer
consumer = object : DefaultConsumer(channel) {
override fun handleDelivery(consumerTag: String?, envelope: Envelope?, properties: AMQP.BasicProperties?, body: ByteArray?) {
super.handleDelivery(consumerTag, envelope, properties, body)
val msg = String(body!!, Charsets.UTF_8)
Log.e(TAG, "RabbitMQ - $msg")
showRabbitMessage(msg)
}
}
channel.basicConsume("defenders_test", true, consumer)
}
})
subscribeThread.start()
}
当函数
showRabbitMessage()
被执行时连接丢失,但如果我删除它并观看日志,则消息将显示在控制台中。知道如何从线程中获取消息吗? Thx提前!
答案【使用activity方法后,Android应用程序与RabbitMQ断开连接】问题是我必须从线程转移对象 - > out,并且在android中它可以通过使用
Handle
对象和handleMessage()
方法来完成。推荐阅读
- java.lang.NoClassDefFoundError(解析失败:Lcom / google / android / gms / common / internal / zzbp)
- Xamarin.Android AndroidEnvironment文件未应用于更改GC Bridge实现
- 如何在新的app界面中的jTessBoxEditor(tesseract)中生成tiff / box()
- 触摸无法在Android设备上的Unity上使用
- JAX-RS(泽西实现)ExceptionMapper 没有捕获ConstraintViolationException
- 如何找到互联网连接类型是否通过java代码Wifi或LAN连接不与android
- 在Android中使用UDP和MQTT协议编写聊天编程
- 从.Net到vb6的Web服务的DLL - 如何设置app.config
- Android模拟器错误(std :: bad_alloc)