java - 创建自定义完成/回调处理程序以在 HTTP 请求完成后返回对象

标签 java android event-handling android-handler androidhttpclient

我是一名 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 方法之后返回一些内容。

有什么想法吗?

最佳答案

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

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

关于java - 创建自定义完成/回调处理程序以在 HTTP 请求完成后返回对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34305301/

相关文章:

java - 使用 SSH key 的 SSH 隧道 : first hop username/password, 第二跳

java - php 中的 AES/CBC/PKCS5Padding java 等价物是什么?

java - 从 Firebase 中删除数据,但不是永久删除

JavaScript 处理程序

java - 在 Java 中使用 KeyListener

c# - 如何使用 DropDownList 的 SelectedIndexChanged 事件

java - 如何在没有 "sources JAR"的 lib 的 Eclipse 项目中附加源代码?

java - 如何找到 Java 项目中所有可能抛出 RuntimeException 的位置?

android - 如何在不设置时间范围的情况下从 google fit api 检索 "Height"?

android - 从 json 模板在 Android 中创建动态 UI