Несколько AsyncTask для парсинга страницы?

262
06 марта 2017, 10:16

Вопрос в следующем, у меня есть asynctask, в котором я копирую с некой интернет-страницы текст при нажатии на кнопку, но также мне нужно парсить другую страницу при нажатии на вторую кнопку, как в таком случае поступают? спасибо.

Answer 1

В случае AsyncTask вам нужно создать новый экземпляр задачи и запустить её. Т.е. использовать уже завершённую задачу заново не нужно и даже не получится.

Также попробуйте более современные и модные способы общения с сетью. Например связку OkHttp, RxJava и Retrolambda. С ними получение HTML страницы это всего 4 строки:

Observable.fromCallable(() -> new OkHttpClient.Builder().build().newCall(new Request.Builder().url("https://kremlin.ru").build()).execute().body().string())
.subscribeOn(Schedulers.io())
.observeOn(AndroidSchedulers.mainThread())
.subscribe(response -> Log.d("html: " + response ), error -> Log.e("error", e));

Код выше скачивает вне основного потока HTML с сайта и выводит его в консоль уже в основном потоке. В случае ошибки она также будет выведена в консоль. В этом же стиле можно и парсинг станицы делать.

READ ALSO
Метод indexOf()

Метод indexOf()

После преобразования массива чисел типа int в строку методом ArraystoString(); перестал работать метод indexOf()

234
Формат видео для фона сайта

Формат видео для фона сайта

Какой формат видео лучше всего выбирать для фона на сайт, чтобы соотношение вес/качество был самым оптимальным? Сейчас стоит mp4, 720p качество37...

296
Как с сайта скачать все картинки? [требует правки]

Как с сайта скачать все картинки? [требует правки]

Вопрос следующий как скачать картинки с сайта, но не маленькие, а большие, которые открываются при нажатии на картинку?

280
Фигуры в css на различных экранах

Фигуры в css на различных экранах

Добрый день всемВопрос: как при помощи css круг сделать под любой экран? width, height и border-radius в процентах дают круг на одних экранах и эллипс на других

269