मुझे asyncTask में doInBackground () अनुभाग में स्थित AsyncHttpClient अनुभाग में त्रुटि मिलती है। मैं त्रुटि से कैसे छुटकारा पा सकता हूं? त्रुटि प्राप्त लाइन नीचे इंगित की गई है।

त्रुटि: doInBackground निष्पादित करते समय एक त्रुटि हुई ()

public class BackgroundTask2 extends AsyncTask<String,Void,String> {

        protected Void doInBackground(String... params) {

            Bundle veri = getIntent().getExtras();
            sorguYil = veri.getString("yil");
            sorguAy = veri.getString("tarih");

            sorguAy2 = sorguAy.replace(" ", "");
            sorgu = "ehliyet" + sorguYil + sorguAy2;
            s = kelimeGetir(sorgu); // I am getting the error here
            return s;}

protected void onPostExecute(String aVoid) {
            super.onPostExecute(aVoid);

        if (aVoid.equals("internet")){
            Toast.makeText(sorularActivity.this, "Lütfen internet bağlantınızı kontrol edin!", Toast.LENGTH_SHORT).show();
            progressDialog.dismiss();
            Intent intent = new Intent(getApplicationContext(),SinavSecimiActivity.class);
            startActivity(intent);
            overridePendingTransition(R.anim.slide_in_left,R.anim.slide_out_right);

        }else if (aVoid.equals("onay")){
            progressDialog.dismiss();
        }

    }

KelimeGetir(sorgu)

private String kelimeGetir(String sorgu) {

        AsyncHttpClient client = new AsyncHttpClient();
        RequestParams params = new RequestParams();
        params.put("sorgu", sorgu);
        client.post("https://www....php", params, new TextHttpResponseHandler()
//****ERROR {

            public void onFailure(int statusCode, Header[] headers, String responseString, Throwable throwable) {
                fnDu = "internetEr";

            }

            public void onSuccess(int statusCode, Header[] headers, String responseString) {

                try {

                    txtSoruSayisi.setText(soruSayisi + " / 50");

                    JSONObject object = new JSONObject(responseString);
                    JSONArray array = object.getJSONArray("soruVeri");
                    JSONObject sorular = array.getJSONObject(sayac);

                } catch (JSONException e) {
                    e.printStackTrace();
                }
            }
          fnDu = "onay";
        });

     return fnDu;

    }

त्रुटि छवि विवरण यहां दर्ज करें

छवि विवरण यहां दर्ज करें

0
Markos Bayard 31 जिंदा 2019, 02:29

1 उत्तर

सबसे बढ़िया उत्तर

जैसा कि @ उदय नायक ने कहा, आप doInBackground विधि पर UI तत्व तक नहीं पहुंच सकते हैं, इससे क्रैश हो जाएगा (यह अलग थ्रेड के साथ चल रहा है)। लेकिन अगर आपको करना ही है, तो इसे लपेट लें

runOnUiThread(() -> {
            // to UI access
        });

या अपना टोस्ट दिखाने के लिए मुख्य थ्रेड तक पहुंचने के लिए हैंडलर बनाएं

0
Nanda Z 31 जिंदा 2019, 10:28