rstJkee
@rstJkee

Вывести в отдельный поток коннект к сайту?

Здравствуйте! Стало интересно распарсить страницу из хтмл в приложение на базе андроид 5.0+. Ругается на то, что в главном потоке всё делается. Помогите обыграть эту ситуацию, чтобы ошибка пропала. Как вынести в другой поток? И, если не слишком трудно, приведите часть кода, чтобы исключить недопонимание

Код на джаве
private final String[] arrDay = {"Понедельник", "Вторник", "Среда", "Четверг", "Пятница", "Суббота", "Воскресенье"};
    private final String urlIVT = "https://www.ulstu.ru/schedule/students/part1/34.html";

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        loadData();
    }

    private void loadData() {
        try {
            Document doc = Jsoup.connect(urlIVT).get();
            Elements firstWeek = doc.getElementsByTag("table");
            Toast.makeText(this, "Sucsessful loaded", Toast.LENGTH_SHORT).show();
        } catch (Exception e) {
            Toast.makeText(this, e.toString(), Toast.LENGTH_SHORT).show();
        }
    }
  • Вопрос задан
  • 71 просмотр
Пригласить эксперта
Ответы на вопрос 2
azerphoenix
@azerphoenix Куратор тега Java
Java Software Engineer
Здравствуйте!
У вас получается, что при создании активити (в методе onCreate() ) вызывается метод loadData(), который используя Jsoup парсит данные.
Можно метод loadData() вывести в класс, который имплементирует интерфейс Runnable и выполнять этот метод в отдельном потоке. Можно также выполнять метод асинхронно.
Ответ написан
@foonfyrick
Document doc = Jsoup.connect(urlIVT).get(); эта строка у тебя получает документ в виде всей страницы сайта, ее нужно выполнять в отдельном потоке, логи тебе об этом говорят. Можно использовать Thread().
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы