我不知道如何使這個代碼在AsyncTask工作,我搜索了多個例子,但它不斷崩潰。我在互聯網上發現了這個簡單的代碼,我想調整它以從文本字段獲取URL並獲取HTML代碼。我發現它必須在AsyncTask中,否則它將無法工作,但即使在AsyncTask中,我也無法使其工作。這是我的代碼:我如何使這個代碼成爲一個AsyncTask?
String ETURL = ETURLInput.getText().toString();
try {
URL TestURL = new URL(ETURL);
BufferedReader bufferReader = new BufferedReader(
new InputStreamReader(TestURL.openStream()));
String outputCode;
while ((outputCode = bufferReader.readLine()) != null)
TVCode.setText(outputCode);
bufferReader.close();
} catch (Exception e) {
TVCode.setText("Oops, something went wrong.")
}
}
這是需要在ActionListener內部執行的代碼。所以當我點擊按鈕時,它應該在AsyncTask中執行此代碼。
希望有人能幫助我。
作爲一個猜測,你的'AsyncTask'崩潰,因爲你是從'doInBackground'試圖更新UI(通過你的'setText'電話) 。來自'LogCat'的錯誤,以及將此代碼移動到'AsyncTask'的代碼將有所幫助。 – PPartisan
@PPartisan感謝您的回答。我嘗試了這一點,我得到以下錯誤:引起:java.net.MalformedURLException:未找到協議:,,,, java.lang.RuntimeException:執行doInBackground(),,,,, java.lang時發生錯誤。 SecurityException:權限被拒絕(缺少INTERNET權限?)。我正確使用了Internet權限,因此我不知道爲什麼會出現此錯誤。 – JI38D
在這種情況下,你見過與此錯誤信息有關的其他答案嗎?即[權限被拒絕(缺少INTERNET權限?)](http://stackoverflow.com/questions/25135595/permission-denied-missing-internet-permission) – PPartisan