使用后是否需要释放/释放 Observable 对象? [英] Do I need to free/release Observable object after I use it?

查看:26
本文介绍了使用后是否需要释放/释放 Observable 对象?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我是否需要在使用 Observable 对象后释放/释放 Observable 对象,以防 Observable 对象没有被 GC 垃圾处理?我没有找到任何文章提及它.Observable 对象是否会被 GC 自动垃圾化?

Do I need to free/release Observable object after I use it in case Observable object is not garbaged by GC? I didn't find any article to mention it. Is Observable object garbaged by GC automatically?

 Observable.create(new ObservableOnSubscribe<Boolean>() {
        @Override
        public void subscribe(ObservableEmitter<Boolean> e) throws Exception {
            boolean connected = true;
            //my logic code here
            e.onNext(connected);
            e.onComplete();
            e.setCancellable(null);
            //Do I need to do some extra release/free Observable object work in case Observable object is not garbaged by GC?
        }
    }).subscribeOn(Scheduler.ioThread())
            .observeOn(Scheduler.mainThread())
            .subscribe(new Consumer<Boolean>() {
                @Override
                public void accept(Boolean connected) throws Exception {
                    //my logic code here.
                    //Do I need to do some extra release/free Observable object work in case Observable object is not garbaged by GC?
                }
            }, new Consumer<Throwable>() {
                @Override
                public void accept(Throwable throwable) throws Exception {
                    //my logic code here.
                    //Do I need to do some extra release/free Observable object work in case Observable object is not garbaged by GC?
                }
            });

推荐答案

在大多数情况下,我们不需要显式调用 unsubscribe 方法,除非我们想提前取消或者我们的 Observable 的生命周期比订阅的寿命更长.Observable 运算符的默认行为是在 .complete() 或 .error() 消息发布后立即处理订阅.请记住,RxJS 的设计目的是在大多数情况下以即发即忘"的方式使用.阅读

In most cases we will not need to explicitly call the unsubscribe method unless we want to cancel early or our Observable has a longer lifespan than our subscription. The default behavior of Observable operators is to dispose of the subscription as soon as .complete() or .error() messages are published. Keep in mind that RxJS was designed to be used in a "fire and forget" fashion most of the time. read

这篇关于使用后是否需要释放/释放 Observable 对象?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆