Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/183.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 异步HttpClient在侦听器函数中的使用(以及这些函数的重用)_Java_Android_Listener_Android Async Http - Fatal编程技术网

Java 异步HttpClient在侦听器函数中的使用(以及这些函数的重用)

Java 异步HttpClient在侦听器函数中的使用(以及这些函数的重用),java,android,listener,android-async-http,Java,Android,Listener,Android Async Http,我正在为我的Android/Java应用程序使用LoopJ的AsynHttpClient 在第一个命令块之后,我对服务器进行登录调用。如果可以,我调用其他API来检索数据 现在,我正在调用前一个API结束后的下一个API。只有在最后一次通话结束后,我才会将应用程序发送到下一个目的地。这是最好的方法吗 第二个问题,如何处理失败的发送\刷新\调用重试API 最后,是否有一种方法可以只编写一个足够智能的侦听器,以发现何时所有请求都得到了响应,并继续执行下一个目的 public void clickLo

我正在为我的Android/Java应用程序使用LoopJ的AsynHttpClient

在第一个命令块之后,我对服务器进行登录调用。如果可以,我调用其他API来检索数据

现在,我正在调用前一个API结束后的下一个API。只有在最后一次通话结束后,我才会将应用程序发送到下一个目的地。这是最好的方法吗

第二个问题,如何处理失败的发送\刷新\调用重试API

最后,是否有一种方法可以只编写一个足够智能的侦听器,以发现何时所有请求都得到了响应,并继续执行下一个目的

public void clickLogin(View view) {

[...]

    AsyncHttpClient client = new AsyncHttpClient();
    RequestParams rp = new RequestParams();
    rp.add("grant_type", "password");
    rp.add("username", String.valueOf(txtUsuario.getText()));
    rp.add("password", String.valueOf(txtSenha.getText()));
    rp.add("client_id", "mobileApp");
    HttpUtils.postEncoded("token", rp, new JsonHttpResponseHandler() {

        @Override
        public void onSuccess(int statusCode, Header[] headers, JSONObject response) {
            super.onSuccess(statusCode, headers, response);

            [...]

            HttpUtils.get(getApplicationContext(),"api/coins", headers, reqparams, new JsonHttpResponseHandler() {

                @Override
                public void onSuccess(int statusCode, Header[] headers, JSONArray response) {
                    super.onSuccess(statusCode, headers, response);
                    [...]
                    HttpUtils.get(getApplicationContext(),"api/travels", headers, reqparams, new JsonHttpResponseHandler() {

                        @Override
                        public void onSuccess(int statusCode, Header[] headers, JSONArray response) {
                            super.onSuccess(statusCode, headers, response);

                            Intent intent = new Intent(getApplicationContext(), TravelsActivity.class);
                            startActivity(intent);
                        }

                        @Override
                        public void onFailure(int statusCode, Header[] headers, Throwable throwable, JSONObject errorResponse) {
                            super.onFailure(statusCode, headers, throwable, errorResponse);
                            if (statusCode == 401) {
// *** Treat unauthorized. Call other API to refresh token ***
                            }
                            else {
                                e.printStackTrace();
                            }
                        }
                    }
                }

                @Override
                public void onFailure(int statusCode, Header[] headers, Throwable throwable, JSONObject errorResponse) {
                    super.onFailure(statusCode, headers, throwable, errorResponse);
                    if (statusCode == 401) {
// *** Treat unauthorized. Call other API to refresh token ***
                    }
                    else {
                        e.printStackTrace();
                    }
                }
            }
        }
    }
}