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

Jay*_*iyk 5 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            
        }
    });
}
Run Code Online (Sandbox Code Playgroud)

我这样称呼它 MainActivity

RequestHelper.checkEmailAvailability("user@user.com");
Run Code Online (Sandbox Code Playgroud)

现在该函数仍然无效但我希望它在on onResponseonFailure方法之后返回一些东西.

有什么想法吗?

小智 1

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

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