Как выполнить длинный цикл внутри Aysnctask? - PullRequest
0 голосов
/ 12 сентября 2018

Я хочу выполнить следующий код в aysnc_task. Я пытался, но в фоновом режиме не выполняется полный код.Пожалуйста, помогите мне. Кто-нибудь направит меня. Я хочу выполнить следующий код в aysnc_task. Но код падает при вызове webapi в postexecute.Пожалуйста, помогите мне.

 public class Asynctaskc extends AsyncTask<Void, Void, Void> {

        private ProgressDialog progressDialog;
        String rcode;
        String rResponseMesssage;
        CustomerValidationResponse customerValidationResponse;
        CustomerValidationRequest customerValidationRequest;
        TokenResponse tokenResponse;
        String tokens;

        @Override
        protected void onPreExecute() {
            super.onPreExecute();
            progressDialog = new ProgressDialog(Login_activity.this);
            progressDialog.setMessage("Saving image to SD Card");

            progressDialog.setProgressStyle(ProgressDialog.STYLE_SPINNER);
            progressDialog.setCancelable(false);
            progressDialog.show();
        }
 @Override
        protected Void doInBackground(Void... voids) {

            final GenerateOAuthToken generateOAuthToken = new GenerateOAuthToken();

            generateOAuthToken.OAuthToken(new Callback() {

                @Override
                public void onFailure(Call call, IOException e) {
                    e.printStackTrace();
                }

                @Override
                public void onResponse(Call call, Response response) throws IOException {

                    String tokenReponseJson = response.body().string();

                    //Json string to Class
                    tokenResponse = new Gson().fromJson(tokenReponseJson, TokenResponse.class);
                    tokens = tokenResponse.access_token;



                }
            });


            return null;
        }



    @Override
        protected void onPostExecute(Void vvoid) {
            super.onPostExecute(vvoid);

            customerValidationRequest = new CustomerValidationRequest(
                    usrname,
                    usrpass,
                    ConstantVariables.getAppversioncode(),
                    false
            );


            String JSONBody = new Gson().toJson(customerValidationRequest);

            final WebAPICall webAPICall = new WebAPICall();

            webAPICall.POSTCall(tokens, "customer/CustomerValidation", JSONBody, new Callback() {

                @Override
                public void onFailure(Call call, IOException e) {
                    e.printStackTrace();
                }

                @Override
                public void onResponse(Call call, Response response) throws IOException {

                    String responseJSON = response.body().string();
                    customerValidationResponse = new Gson().fromJson(responseJSON, CustomerValidationResponse.class);
                    rResponseMesssage = String.valueOf(customerValidationResponse.ResponseMessage);
                    rcode = String.valueOf(customerValidationResponse.ResponseCode);
                    //Json string to Class
                }
            });
            progressDialog.dismiss();
            if (rcode.equals(ConstantVariables.ResponseCodeSucess)) {

                ConstantVariables.seteEmail(usrname);

                startActivity(new Intent(getApplicationContext(), Navigationdrawer.class));
            } else {
                Toast.makeText(Login_activity.this, "" + rResponseMesssage, Toast.LENGTH_SHORT).show();
            }


        }
    }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...