是android异步http库与UI线程耦合



我想在我的应用程序中使用这个很棒的库来处理我的服务器请求,以便在地图上做一些工作我的需求是,当服务器请求过程发生时,我想每2分钟发出一次服务器请求,而不会在屏幕上阻止用户交互,在onSuccess回调中,我会在地图上做一些工作我该如何使用这个图书馆来满足我的需要?以及与Android活动和碎片生命周期相结合的库

有关图书馆信息,请参阅本网站。http://loopj.com/android-async-http/

实际上,它来自您链接的页面http://loopj.com/android-async-http/。这些回调在UI线程中执行,但实际请求在另一个线程中处理。

AsyncHttpClient client = new AsyncHttpClient();
client.get("http://www.google.com", new AsyncHttpResponseHandler() {
    @Override
    public void onStart() {
        // called before request is started
    }
    @Override
    public void onSuccess(int statusCode, Header[] headers, byte[] response) {
        // called when response HTTP status is "200 OK"
    }
    @Override
    public void onFailure(int statusCode, Header[] headers, byte[] errorResponse, Throwable e) {
        // called when response HTTP status is "4XX" (eg. 401, 403, 404)
    }
    @Override
    public void onRetry(int retryNo) {
        // called when request is retried
    }
});

在"活动"的onStop()中,您应该调用AsyncHttpClient的cancelAllRequests(上下文上下文,布尔值mayInterruptIfRunning)

client.cancelAllRequests(this, true);

这应该确保您的请求的回调永远不会被调用,然后使您免受非琐碎的网络使用,并使您免受IllegalStateException的影响。

相关内容

  • 没有找到相关文章

最新更新