【问题标题】:Create a Custom Completion/Callback Handler to return Objects after a HTTP Request is Completed创建自定义完成/回调处理程序以在 HTTP 请求完成后返回对象
【发布时间】:2016-03-22 04:37:23
【问题描述】:

我是一名 iOS 开发人员,开始学习 Android。在 Swift 中,创建完成处理程序非常简单,但我仍然找不到在 Java 中的方法。

如果这个问题对 StackOverflow 的人来说太陌生,我很抱歉。

问题

我正在创建一个类来处理我使用 Retrofit 完成的所有 Http 请求。

我使这个函数是我的RequestHelper.java

public static void checkEmailAvailability(String email) {
    MyWebServiceAPI serviceAPI = retrofit.create(MyWebServiceAPI.class);

    Call<APIResults> call = serviceAPI.checkEmailAvailability(getAuthenticationHeader(), RequestBody.create(MediaType.parse("text/plain"), email));

    call.enqueue(new Callback<APIResults>() {
        @Override
        public void onResponse(retrofit.Response<APIResults> response, Retrofit retrofit) { 
              //Parse Response Json
              //Get some value and place it inside an object
             //ANDI WOULD LIKE RETURN SOME BOOLEAN VALUE AND SOME OTHER STRING
        }

        @Override
        public void onFailure(Throwable t) {
              //I WOULD LIKE A BOOLEAN VALUE HERE            
        }
    });
}

我的MainActivity这样称呼它

RequestHelper.checkEmailAvailability("user@user.com");

现在该函数仍然无效,但我希望它在 onResponseonFailure 方法之后返回一些内容。

请问有什么想法吗?

【问题讨论】:

标签: java android event-handling android-handler androidhttpclient


【解决方案1】:

您应该将Callback 对象作为参数传递给checkEmailAvailability()

并在你从MainActivity调用方法时实现接口,并使用onXXX()方法中的response参数作为返回的数据更新UI。

【讨论】:

  • 我想要一个不同的回调(自定义)。因为我要解析响应并在回调中返回它的值。
  • @JayVDiyk 您可以执行以下操作: public void checkEmailAvailability (String email, final Callback listener) 和 onResponse if (listener != null) { listener.success(retrofit, response); } onFailure if (listener != null) { listener.failure(t);
  • @JeCuRo 感谢您的回复。比方说。我想在回调中返回一个布尔值。我该怎么做呢?
猜你喜欢
  • 2015-12-28
  • 2018-06-10
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2010-12-19
  • 2019-11-16
相关资源
最近更新 更多