Как я могу исправить 'android.os.NetworkOnMainThreadException'?

Я получил ошибку при запуске моего проекта Android для RssReader.

Код:

URL url = new URL(urlToRssFeed);
SAXParserFactory factory = SAXParserFactory.newInstance();
SAXParser parser = factory.newSAXParser();
XMLReader xmlreader = parser.getXMLReader();
RssHandler theRSSHandler = new RssHandler();
xmlreader.setContentHandler(theRSSHandler);
InputSource is = new InputSource(url.openStream());
xmlreader.parse(is);
return theRSSHandler.getFeed();

И это показывает следующую ошибку:

android.os.NetworkOnMainThreadException

Как я могу решить эту проблему?

2272
задан Shubham Suryawanshi 13 September 2019 в 08:06
поделиться

2 ответа

У меня была подобная проблема, я просто использовал следующее в oncreate методе Вашего действия.

//allow strict mode
StrictMode.ThreadPolicy policy = new StrictMode.ThreadPolicy.Builder().permitAll().build();
StrictMode.setThreadPolicy(policy);

и это работало хорошо.

1
ответ дан 22 November 2019 в 19:55
поделиться

Реактивный ранец Android представил WorkManager , который решает проблему фонового сервисного ограничения в Oreo и использовании Менеджера аварийных сигналов ниже Lolipop и JobScheduler выше Lolipop.

используйте WorkManager для выполнения задач на фоновом потоке, и это, продолжают работать даже после того, как пользователь закрывает приложение.

0
ответ дан 22 November 2019 в 19:55
поделиться
Другие вопросы по тегам:

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