将数据传递给AsynTask

时间:2015-06-14 00:03:20

标签: android asynctaskloader

当我以这种方式传递arg时,一切正常:

new MerrTeDhenatEDegeve().execute("https://navigator.bkt.com.al/bktnavigator/al/deget/al_ilamre_deget.php");

当我以这种方式通过arg时它会崩溃:

sh_d sh_d_instance = new sh_d();

new MerrTeDhenatEDegeve().execute(new String(sh_d_instance.deshifro(url_Deget)));

这是我的异步类:

class MerrTeDhenatEDegeve extends AsyncTask<String, String, String> {

    // Marrja e te dhenave te degeve
    protected String doInBackground(String... args) {

        // Ketu po krijojme parametrat qe do te na duhet per te krijuar querin ne db
        List<NameValuePair> params = new ArrayList<NameValuePair>();

        // Ketu po bejme kerkesen per tek serveri dhe presim te marrim pergjigjen e json ne string
        JSONObject jsonDega = jParserDega.makeHttpRequest(args[0], "GET", params);

        try {
            // Si fillim kontrollojme nqs kemi sukses ne marrjen e te dhenave apo jo
            int sukses = jsonDega.getInt(TAG_SUKSES);

            if (sukses == 1) {
                // Ne rast suksesi atehere dmth qe kemi marre te dhenat e degeve dhe fillojme qe ti vendosim ato ne listat perkatese te tyre
                Deget = jsonDega.getJSONArray(TAG_DEGET);

                // Bredhim tek secili objekt me te dhenat e vektorit json dhe per secilin prej objekteve marrim vlerat qe na duhen
                for (int i = 0; i < Deget.length(); i++) {

                    JSONObject VlObj = Deget.getJSONObject(i);

                    // Rruajme te dhenat ne listat perkatese ne menyre qe pastaj ti kapim globalisht
                    listaDegaID.add(VlObj.getString(TAG_DEGE_DID));
                    listaDegaEmrave.add(VlObj.getString(TAG_DEGE_EMRI));
                    listaDegaAdresave.add(VlObj.getString(TAG_DEGE_ADRESA));
                    listaDegaQyteteve.add(VlObj.getString(TAG_DEGE_QYTETI));
                    listaDegaLat.add(VlObj.getString(TAG_DEGE_LATITUDE));
                    listaDegaLng.add(VlObj.getString(TAG_DEGE_LONGITUDE));
                    listaDegaUrlFoto1.add(VlObj.getString(TAG_DEGE_URLFOTO_1));
                }
            }
        } catch (JSONException e) {
            e.printStackTrace();
        }

        return null;
    }
}

当它从另一个返回字符串的方法获取数据时崩溃。

我需要帮助。 谢谢

1 个答案:

答案 0 :(得分:0)

你有哪些错误?你可以发布堆栈跟踪吗?很难说没有看到堆栈的东西,但是,我会告诉你检查这个deshifro方法的结果。如果返回null,则可能是在此处获得nullPointerException:JSONObject jsonDega = jParserDega.makeHttpRequest(args[0], "GET", params);