使用活动方法后,Android应用程序断开与RabbitMQ的连接
我试图在我的android应用程序中实现RabbitMQ,但在使用活动方法后,Android应用程序断开与RabbitMQ的连接,android,kotlin,rabbitmq,Android,Kotlin,Rabbitmq,我试图在我的android应用程序中实现RabbitMQ,但在handleDelivery方法中出现了一个问题,即当我试图调用外部函数时,连接丢失 private fun initRabbitmq () { factory.setUri("someURI") subscribeThread = Thread(object : Runnable { override fun run() { val connection: Connection
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()
}
当执行函数showrabitmessage()
时,连接将丢失,但如果我正在删除它并查看日志,消息将显示在控制台中
你知道如何从线程中提取信息吗?
提前谢谢 问题是,我必须将对象从线程->中转移出去,在android中,可以使用
Handle
对象和handleMessage()
方法来完成