iOS RabbitMQ停止AMQPConsumerThread应用程序变为非活动状态

时间:2015-03-12 16:37:02

标签: ios rabbitmq

我有一个iOS应用,需要在RabbitMQ上发送/接收消息 我使用库https://github.com/profmaad/librabbitmq-objc将iOS与RabbitMQ集成。

为了接收消息,我正在使用AMQPConsumerThread。 问题是,当用户退出应用程序(应用程序变为非活动状态)时,我想要关闭该线程,并在用户重新进入应用程序(应用程序变为活动状态)时再次启动它。

我尝试了几种方法,包括调用[stop] mehtod,[tearDown]方法,但它们都没有一致地工作。有时候,与rabbitmq的连接会被关闭,而大部分时间都没有。

有什么建议吗?

1 个答案:

答案 0 :(得分:0)

这个序列似乎对我来说在进入非活动状态时会抛弃一切。重视'似乎',我也是这个图书馆的新手。

@property (nonatomic, strong) AMQPConnection *connection;
@property (nonatomic, strong) AMQPQueue *queue;
@property (nonatomic, strong) AMQPConsumer *consumer;
@property (nonatomic, strong) AMQPConsumerThread *consumerThread;

self.consumerThread.delegate = nil;
[self.consumerThread closeConsumer];
[self.consumerThread cancel];
self.consumerThread = nil;
self.consumer = nil;
self.queue = nil;
self.connection = nil;