Получение возвращенной строки из AsyncTask в Android
Я хочу получить содержимоеэтот файл и сохранить это в строку.
я пытался использовать AsyncTask (на основеэтот ответ) и вот мой класс.
class RetreiveURLTask extends AsyncTask {
private Exception exception = null;
public String ResultString = null;
protected String doInBackground(Void ... something) {
URL url;
try {
url = new URL("http://stream.lobant.net/ccfm.info");
HttpURLConnection urlConnection;
urlConnection = (HttpURLConnection) url.openConnection();
InputStream in = new BufferedInputStream(urlConnection.getInputStream());
String stream_url = IOUtils.toString(in, "UTF-8");
urlConnection.disconnect();
return stream_url;
} catch (MalformedURLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
return null;
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
return null;
} catch (Exception e) {
this.exception = e;
return null;
}
}
protected void onPostExecute(String stream_url) {
// TODO: check this.exception
// TODO: do something with the feed
if (this.exception != null)
this.exception.printStackTrace();
this.ResultString = stream_url;
}
}
я пытался использовать мой класс AsyncTask следующим образом:
AsyncTask stream_task = new RetreiveURLTask().execute();
String stream_url = stream_task.ResultString;
но ResultString неЯ узнал.
Я не понимаю, как все это работает. Поскольку AsyncTask работает в фоновом режиме, даже если бы я мог назначить свою строку одной из открытых переменных, нет никакой гарантии, что она будет действительной, когда я сделаю назначение. Даже если бы я использовал какую-то функцию getResult (), мне нужно было бы знать, когда ее вызывать, чтобы код завершил выполнение.
Итак, как это обычно делается?
(Кроме того, мой http прочитал код хорошо?)
Моя способность: я могу кодировать, но я новичок в Android.