首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在onSuccess()之前调用loopj android-async-http onFinish()

在onSuccess()之前调用loopj android-async-http onFinish()
EN

Stack Overflow用户
提问于 2014-03-16 00:39:54
回答 1查看 1.3K关注 0票数 1

我正在使用loopj android-async-http运行Android 4.2.2。我最近从android-async-http-1.4.3.jar升级到android-async-http-1.4.4.jar。当我升级时,我注意到我的应用程序发生了变化,我追溯到回调onFailure()、onSuccess()和onFinish()的顺序发生了变化。现在,在失败或成功时,分别在onFailure()或onSuccess()之前系统地调用onFinish()。

我研究了loopj error #411和https://github.com/loopj/android-async-http/blob/master/library/src/main/java/com/loopj/android/http/AsyncHttpRequest.java#L51,以跟随参数,即onFinish()不能在onFailure()或onSuccess()之前调用。我倾向于同意。

然而,对我来说,顺序是改变的,对我来说,这种改变是随着从1.4.3到1.4.4的升级而来的。

问题错误#411似乎已解决。只是,我不明白怎么做到的。有没有人能帮我弄明白我可能做错了什么?

下面的代码片段演示了我看到的顺序,如下

异步测试,onStart异步测试,onFinish异步测试,onFailure

异步测试,onStart异步测试,onFinish异步测试,onSuccess

代码语言:javascript
复制
public static void testAsync() {
    JSONObject body = new JSONObject();
    try {
        body.put("phone", "18037771234");
        body.put("password", "secret"); 
    } catch (JSONException e) {
        e.printStackTrace();
    }
    try {
        new AsyncHttpClient().post(context, "http://myapp.nodejitsu.com/sessions", new StringEntity(body.toString()), "application/json", new JsonHttpResponseHandler() {
            @Override
            public void onStart() {
                Log.d("ASYNC-TEST", "onStart");
            }
            @Override
            public void onSuccess(JSONObject response) {
                Log.d("ASYNC-TEST", "onSuccess");
            }
            @Override
            public void onFailure(Throwable t, JSONObject response) {
                Log.d("ASYNC-TEST", "onFailure");
            }
            @Override
            public void onFinish() {
                Log.d("ASYNC-TEST", "onFinish");
            }
        });
    } catch (UnsupportedEncodingException e) {
        e.printStackTrace();
    }
}
EN

回答 1

Stack Overflow用户

发布于 2014-03-26 20:42:25

我遇到了一些类似的问题,因为我正在解析JSON,显然这比你想象的要花更多的时间。将这部分代码移动到另一个异步任务中,它就像一个魔咒一样工作。希望它能帮到你,它对我也有帮助。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/22426627

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档