0
我被告知使用Asynctasks。但我想知道。是否有可能在一個正常的功能內做一個webrequest?現在我需要始終使用這樣的代碼塊:Java/Android webrequesting
private static HashMap<String, String> retrn = new HashMap<String,String>();
private static class Web extends AsyncTask<String, String, Connection.Response> {
protected Connection.Response doInBackground(String... modefiers) {
Connection.Response res = null;
ArrayList<String> ModList = ToAr(modefiers);
ModList.remove(modefiers[0]);
try {
res = Jsoup.connect(modefiers[0])
.data(ModList.toArray(new String[ModList.size()]))
.method(Connection.Method.POST)
.execute();
Document doc = res.parse();
} catch (Exception e) {
e.printStackTrace();
}
return res;
}
protected void onPostExecute(Connection.Response result) {
retrn.put(result.url().toString(), result.body());
}
}
private static ArrayList ToAr(Object... listr){
ArrayList Ar = new ArrayList();
for (Object ari : listr){
Ar.add(ari);
}
return Ar;
}
所以沒有隻使用一個功能類似的方式:getwebcontent(字符串URL)? –
如果你這樣做,沒有異步性(只是一個「正常」的方法),你會得到一個NetworkOnMainThread異常。此外,這是一種反模式。所以不行。 –