RxAndroid`Observable…subscribe`在Android Studio中突出显示

问题描述 投票:1回答:1

我正在使用RxAndroid将背景线程中的字符串编组到主线程中,并对该主线程上的字符串进行处理:

String stringFromDatabase = readFromDatabase();

Observable.just(stringFromDatabase)
    .observeOn(AndroidSchedulers.mainThread())
    .subscribe(new Consumer<String>() {
        @Override
        public void accept(String string) throws Exception {
            webViewFragment.onInjectMessage(string, null);
        }
    });

Android Studio将鼠标悬停在其上时,以黄色突出显示了整个Observable.just...命令链,告诉我“ 未使用订阅的结果”。

如果将.dispose()添加到链的末尾,则突出显示消失,但是webViewFragment.onInjectMessage(string, null);代码不再执行。

[我注意到我可以通过在整个方法中添加@SuppressLint("CheckResult")注释来删除突出显示。

这是可以安全地忽略的警告,还是在这里造成某种内存泄漏或其他问题?这是不好的做法吗?

android android-studio rx-android
1个回答
3
投票

您必须将其处置以避免内存泄漏。尝试放置在onDestroy

内部
Disposable disposable;

String stringFromDatabase = readFromDatabase();
disposable = Observable.just(stringFromDatabase)
        .observeOn(AndroidSchedulers.mainThread())
        .subscribe(new Consumer<String>() {
            @Override
            public void accept(String string) {
                webViewFragment.onInjectMessage(string, null);
            }
        });

@Override
protected void onDestroy() {
    super.onDestroy();

    disposable.dispose();
}
© www.soinside.com 2019 - 2024. All rights reserved.