Android RXJava:x27的结果;单个。订阅()';被忽略

Android RXJava:x27的结果;单个。订阅()';被忽略,android,rx-java,warnings,Android,Rx Java,Warnings,我正在学习RXJava的基础知识。正如您所看到的,我有一个小方法,它只检查两个整数是否相等,并以单个整数的形式返回结果 /** * This method checks if both online and offline shopping carts have the same number of items * @param numberOfItemsInLocalCart The number of items existing in the offline cart * @retu

我正在学习RXJava的基础知识。正如您所看到的,我有一个小方法,它只检查两个整数是否相等,并以单个整数的形式返回结果

/**
 * This method checks if both online and offline shopping carts have the same number of items
 * @param numberOfItemsInLocalCart The number of items existing in the offline cart
 * @return true if items in both carts match, false otherwise
 */
public static Single<Boolean> run(int numberOfItemsInLocalCart)
{
    return Single.create(emitter ->
            _VolleyService.getInstance().getDataFuture(URLs.Home).subscribe(
                response ->
                {
                    ShoppingCart cart = HTMLParser.getItemsInShoppingCart(response);
                    if(cart.NumberOfElements == numberOfItemsInLocalCart)
                        emitter.onSuccess(true);
                    else
                        emitter.onSuccess(false);
                },
                    emitter::onError));
}
如何以适当的方式消除此问题?

Single#subscribe
返回一个
一次性的
。保留对此的引用允许您稍后取消订阅
单曲的结果

var disposable: Disposable? = run(20).subscribe()
//And later, if you're no longer interested in the result of your Single...
disposable?.dispose()

虽然PPartisans对您收到的警告的回答是正确的,但以下内容可以更清晰地将您的可观察对象转换为单个(不需要
single.create
):

公共静态单次运行(int numberOfItemsInLocalCart){
return\u VolleyService.getInstance().getDataFuture(url.Home)
.map(响应->{
ShoppingCart=HTMLParser.getItemsInShoppingCart(响应);
return cart.NumberOfElements==numberOfItemsInLocalCart
}.singleOrError()
}

我理解你的意思,但是如果我需要从一个方法返回一个单子呢?我的意思是,我不能在返回一个值后处理任何东西…你可以从一个方法返回一个
单子
,这很好-警告涉及调用该单子上的
subscribe()
后返回的
一次性
var disposable: Disposable? = run(20).subscribe()
//And later, if you're no longer interested in the result of your Single...
disposable?.dispose()
public static Single<Boolean> run(int numberOfItemsInLocalCart) {
    return _VolleyService.getInstance().getDataFuture(URLs.Home)
            .map(response -> {
                    ShoppingCart cart = HTMLParser.getItemsInShoppingCart(response);
                    return cart.NumberOfElements == numberOfItemsInLocalCart
            }.singleOrError()
}