Android - loopJ AsyncHttpClient return response onFinish or onSuccess

前端 未结 2 780
小蘑菇
小蘑菇 2020-12-15 14:34

I am looking for a way to return the response I get in loopJ AsyncHttpClient onFinish or onSuccess or onFailure. As of now I have this piece of code:

**jsonP         


        
2条回答
  •  感情败类
    2020-12-15 15:17

    Use an interface. This way you can create your own callback whose methods can be called from onSuccess or onFailure.

    public interface OnJSONResponseCallback {
        public void onJSONResponse(boolean success, JSONObject response);
    }
    
    public JSONObject getJSONObj(OnJSONResponseCallback callback) {
        ...
       @Override
       public void onSuccess(int i, Header[] headers, String response) {
           try {
               jObj = new JSONObject(response);
               callback.onJSONResponse(true, jObj);
           } catch (JSONException e) {
               Log.e("Exception", "JSONException " + e.toString());
           }
       }
    
       @Override
       public void onFailure(int statusCode, Header[] headers, String response, Throwable e) {
           try {
               jObj = new JSONObject(response);
               callback.onJSONResponse(false, jObj);
           } catch (JSONException e) {
               Log.e("Exception", "JSONException " + e.toString());
           }
       }
    }
    

    And to call it:

    jsonParse.getJSONObj(new OnJSONResponseCallback(){
        @Override
        public void onJSONResponse(boolean success, JSONObject response){
           //do something with the JSON
        }
    });
    

提交回复
热议问题