使用activity方法后,Android应用程序与RabbitMQ断开连接

弓背霞明剑照霜,秋风走马出咸阳。这篇文章主要讲述使用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()方法来完成。

    推荐阅读