How do I retrieve the data from AsyncTasks doInBackground()?

后端 未结 6 1049
耶瑟儿~
耶瑟儿~ 2020-11-28 08:13

I\'ll keep this one as simple as I can.

I have a method in my control layer that uses a class CallServiceTask that extends AsyncTask. When

6条回答
  •  抹茶落季
    2020-11-28 09:06

    private void walletStatements() {
            JSONObject post_search = new JSONObject();
            try {
    
                post_search.put("username", getUserName);
    
    
            } catch (JSONException e) {
                e.printStackTrace();
            }
            if (post_search.length() > 0) {
                try {
                   new Getwalletstatements().execute(String.valueOf(post_search));
    
                } catch (Exception e) {
                    e.printStackTrace();
                }
    
            }
        }
    
    
        class Getwalletstatements extends AsyncTask {
            String JsonResponse = null;
            ProgressDialog dialog;
    
            @Override
            protected void onPreExecute() {
                super.onPreExecute();
    
                dialog = new ProgressDialog(ReportsActivity.this);
                dialog.setMessage("Please Wait...");
                dialog.setCancelable(false);
                dialog.show();
            }
    
            @Override
            protected String doInBackground(String... params) {
                String JsonDATA = params[0];
                HttpURLConnection urlConnection = null;
                BufferedReader reader = null;
                URL url = null;
    
                try {
                    url = new URL(Constant.url+"GetReports_v9.php");
                    urlConnection = (HttpURLConnection) url.openConnection();
                    urlConnection.setDoOutput(true);                // is output buffer writter
                    urlConnection.setRequestMethod("POST");
                    urlConnection.setRequestProperty("Content-Type", "application/json");
                    urlConnection.setRequestProperty("Accept", "application/json");//set headers and method
                    Writer writer = new BufferedWriter(new OutputStreamWriter(urlConnection.getOutputStream(), "UTF-8"));
                    writer.write(JsonDATA);// json data
                    writer.close();
    
                    InputStream inputStream = urlConnection.getInputStream();//input stream
                    StringBuffer buffer = new StringBuffer();
                    if (inputStream == null) {                    // Nothing to do.
                        return null;
                    }
                    reader = new BufferedReader(new InputStreamReader(inputStream));
                    String inputLine;
    
                    while ((inputLine = reader.readLine()) != null)
                        buffer.append(inputLine + "\n");
    
                    if (buffer.length() == 0) {                    // Stream was empty. No point in parsing.
                        return null;
                    }
    
                    JsonResponse = buffer.toString();
    
    
                    return JsonResponse;
    
                } catch (MalformedURLException e) {
                    e.printStackTrace();
                } catch (ProtocolException e) {
                    e.printStackTrace();
                } catch (UnsupportedEncodingException e) {
                    e.printStackTrace();
                } catch (IOException e) {
                    e.printStackTrace();
                } finally {
                    if (urlConnection != null) {
                        urlConnection.disconnect();
                    }
                    if (reader != null) {
                        try {
                            reader.close();
                        } catch (final IOException e) {
    
                        }
                    }
                }
    
    
                return null;
            }
    
            @Override
            protected void onPostExecute(String s) {
    
                if (JsonResponse != null) {
                    try {
                        NetworkIN.iv= Constant.iv;
                        NetworkIN.change=Constant.key;
                        NetworkIN mCrypt=new NetworkIN();
                        String decrypted = new String( mCrypt.decrypt(JsonResponse.trim()) );
    
                        if(decrypted!=null){
                            JSONObject ordersHistory = new JSONObject(decrypted);
                            msg = ordersHistory.getString("msg");
    
                            JSONArray jsonArray = ordersHistory.getJSONArray("PPDetails");
    
                            ordersCount = jsonArray.length();
                            //for (int j = 0; j < jsonArray.length(); j++)
                            for (int j = jsonArray.length() - 1; j >= 0; j--)
                            {
                                JSONObject jsonObject = jsonArray.getJSONObject(j);
    
    
                                String message,total_in,inType ;
    
                                total_in =jsonObject.getString("total_in");
                                inType =jsonObject.getString("in_type");
                                message="Congratulations your wallet is credited by Rs."+total_in+" because of "+inType;
                                ReportsPojo reportsPojo = new ReportsPojo(jsonObject.getString("reg_id"),
                                        jsonObject.getString("username"),
                                        jsonObject.getString("transfer_from"),
                                        jsonObject.getString("transfer_to"),
                                        jsonObject.getString("total_in"),
                                        jsonObject.getString("tds"),
                                        jsonObject.getString("in_amount") ,
                                        jsonObject.getString("out_amount"),
                                        jsonObject.getString("in_type"),
                                        jsonObject.getString("created_on"),
                                        message);
    
                                reportsItems.add(reportsPojo);
                            }
                        }else{
    
                        }
    
    
                    } catch (JSONException e) {
                        e.printStackTrace();
                    } catch (Exception e) {
                        e.printStackTrace();
                    }
    
                    if (msg.equals("Success")) {
    
                        reportsAdapter = new ReportsAdapter(ReportsActivity.this, reportsItems);
                        reportsListview.setAdapter(reportsAdapter);
    
                    } else {
                        Toast.makeText(ReportsActivity.this, "Sorry "+msg, Toast.LENGTH_LONG).show();
    
                    }
                    dialog.dismiss();
                } else {
                    dialog.dismiss();
                }
            }
    

提交回复
热议问题