Работа AsyncTask

Ответить
spectr99
Сообщения: 1
Зарегистрирован: 01 июн 2015, 15:14

Работа AsyncTask

Сообщение spectr99 » 25 сен 2015, 13:29

Доброго времени суток. У меня возникла трудность с AsyncTask.
Мне нужно загрузить текст с сайта. Т.к. нельзя делать загрузку в основном потоке, я делаю через AsyncTask.
[syntax=java]class Parser extends AsyncTask<Void, Void, Void> {
String st;

@Override
protected Void doInBackground(Void... params) {
Document doc = null;
Element el;
try {

doc = Jsoup.connect("https://play.google.com/store/apps/deta ... .hillclimb").userAgent("Mozilla/5.0 (Windows NT 6.1; WOW64; rv:8.0.1) Gecko/20100101 Firefox/8.0.1").get();
} catch (IOException e) {

e.printStackTrace();
}


if (doc!=null) {
st = doc.title();
st = el.text();
}
else
st = "Ошибка";
return null;
}

@Override
protected void onPostExecute(Void result) {
super.onPostExecute(result);
textview.setText(st);
}
}[/syntax]
Этот класс прописан внутри MainActivity. и когда я выполняю клик по кнопке. Все прекрасно работает. Код клика.
[syntax=java]public void onClick(View v){
Parser parse = new Parser();
parse.execute();
}[/syntax]

Теперь я хотел вынести AsyncTask в другой файл, но тогда все перестает работать, точнее ничего не выводиться из-за того, что не успевает загрузится. Можно поставить слип системы и тогда будет выводиться, но я хочу обойтись без него.

Так же попробовал в классе AsyncTask ( который уже в другом файле) сделать метод и вызывать его в Активити, но тоже не удалось, опять ничего не выводится.
[syntax=java]public void texter(TextView textview){
execute();
textview.setText(st);
}[/syntax]

Помогите пожалуйста, как сделать, чтоб все работало и AsyncTask был в другом файле.

З.Ы простите за корявое объяснение

Ответить