在API响应未成功完成之前,如何停止执行流程?

时间:2017-11-03 06:29:47

标签: android

说明:             我想在这里解释整个情况。我有API调用,它驻留在另一个类中(不在任何活动或片段上)。我试图使用该类的对象调用API调用方法。在那个时间点,我必须等到我的API响应未成功完成。在响应的基础上,我需要另外一个API,它位于同一个类中。

问题:

我正在使用AsyncHttpClient库来调用API。这是使用异步方法。如果我在调用其余部分期间在活动或片段中放置API调用,则尝试执行。但我想等到我的API成功响应我,然后我想执行一行代码。

问题:

我应该从这种情况中克服什么?我没有将API调用放在活动或片段中,因为实现策略不同。

请帮我解决这个问题。

3 个答案:

答案 0 :(得分:0)

  

hii米兰,我建议使用https://github.com/koush/ion   库到你的项目它会比AsyncHttpClient

更好      

我认为您的问题将通过此库解决。

     

如果您想要提前休息,请使用retrofit

答案 1 :(得分:0)

在这种情况下您可以使用接口:

  1. 使用方法
  2. 创建界面

    onSuccess(String responseData)onError(String errorData)

    1. 在您的活动或片段中实施界面。在API成功之后,在接口的onSuccess(String responseData)方法中添加要执行的代码。同时处理onError(String errorData)

    2. 创建API类的对象时,会传递已实现的接口对它的引用,以便API类可以调用结果的接口方法。

    3. 此外,您可以使用任何第三方库进行此类工作,例如Retrofit,volley等。

      我希望这可以帮到你。

答案 2 :(得分:0)

使用界面。这样您就可以创建自己的回调,其方法可以从onSuccess或onFailure调用。

8.X.X

并称之为:

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());
       }
   }
}