【问题标题】:Send parameter to method's of subscribe CompositeDisposable - Android?将参数发送到订阅 CompositeDisposable 的方法 - Android?
【发布时间】:2017-12-16 19:25:44
【问题描述】:

我使用rx 连接到serviceretrofit,下面是RetrofitApi.java

public class RetrofitApi {
    private static PublicApi retrofit = null;

    public static PublicApi getClient(String url) {
        retrofit = new Retrofit.Builder()
                .baseUrl(url)
                .addCallAdapterFactory(RxJava2CallAdapterFactory.create())
                .addConverterFactory(GsonConverterFactory.create())
                .build().create(PublicApi.class);
        return retrofit;
    }
}

这里是PublicApi.java

public interface PublicApi {
    @GET("/web_service/mobile/rest")
    Observable<LastNews> lastNews(@Query("function") String function);
}

下面我正在连接到我的服务:

@Override
public void fetchLastNewsStartPage(RemoteDataSource.ResultListener<List<LastNews>> resultListener) {
    PublicApi publicApi = RetrofitApi.getClient("https://xxx.xxx.xxx/web_service/");
    CompositeDisposable mCompositeDisposable = new CompositeDisposable();
    mCompositeDisposable.add(publicApi.lastNews("getLastNews")
            .observeOn(AndroidSchedulers.mainThread())
            .subscribeOn(Schedulers.io())
            .subscribe(this::handleResponse, this::handleError));
}

我的问题就在这里,如何将参数发送到handleResponsehandleError。我需要将此RemoteDataSource.ResultListener&lt;List&lt;LastNews&gt;&gt; resultListener 发送到handleResponsehandleError

private void handleResponse(LastNews lastNewses) {

}


private void handleError(Throwable error) {

}

【问题讨论】:

    标签: java android retrofit rx-java rx-android


    【解决方案1】:

    不要使用方法引用,因为它只能接受一个参数。您可以使用 lambda 表达式获得结果。而不是

    this::handleResponse
    

    lastNews -> handleResponse(lastNews, resultListener)
    

    【讨论】:

    • 是这种方式 (lastNews -> handleResponse(lastNews, resultListener)) Lambda 吗?
    猜你喜欢
    • 1970-01-01
    • 2020-09-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-06-24
    相关资源
    最近更新 更多