【发布时间】:2015-06-14 00:03:19
【问题描述】:
当我以这种方式传递 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;
}
}
所以当它从另一个返回字符串的方法获取数据时它会崩溃。
我需要帮助。 谢谢
【问题讨论】:
-
deshifro()方法返回什么? -
它返回这个:"navigator.bkt.com.al/bktnavigator/al/deget/al_ilamre_deget.php" 因为 url_Deget = "f21gdf21h3sd21h3d1h3gd" 是 url 的解密版本。 deshifro 方法将其解密并返回 url。