rengwuxian / RxJavaSamples

RxJava 2 和 Retrofit 结合使用的几个最常见使用方式举例
3.94k stars 858 forks source link

关于*map的一些疑问 #7

Open LichFaker opened 8 years ago

LichFaker commented 8 years ago

凯哥好, 如果我在map中接收udp的data包,相当于阻塞线程,此时就算调用了unsubscribe()最终也还是会执行Observer,这样会造成内存泄漏,遇到这样的情况该如何处理?

rengwuxian commented 8 years ago

为什么会造成内存泄露没看懂…… unsubscribe() 做的是解绑,它无法阻止你的工作线程的工作,你的工作线程依然会继续进行网络通信,但工作线程和 Observer 的连接已经断开了,应该不会泄露内存吧?

至于工作线程继续工作的问题,如果你想把它立即停止,解决方案就和你使用 RxJava 之前使用一样的就行了。

LichFaker commented 8 years ago

但事实上并没有和Observer解绑成功,最终还是会执行订阅的方法,当再次进入的时候就造成泄漏了。 我试着在你给的例子的flatmap()方法中执行udp的receive操作,遇到了一样的问题

rengwuxian commented 8 years ago

我应该明白你的意思了,但没有遇到过你的情况……你找身边的人帮你看看是不是哪里有什么别的问题试试看?

On Fri, Apr 22, 2016 at 2:02 PM Shenhuan Chan notifications@github.com wrote:

但事实上并没有和Observer解绑成功,最终还是会执行订阅的方法,当再次进入的时候就造成泄漏了。 我试着在你给的例子的flatmap()方法中执行udp的receive操作,遇到了一样的问题

— You are receiving this because you commented.

Reply to this email directly or view it on GitHub https://github.com/rengwuxian/RxJavaSamples/issues/7#issuecomment-213274637

LichFaker commented 8 years ago

okay, thanks anyway

androidzhang commented 7 years ago

大神 厉害呀