Отправка JSON запроса в фоне с определенной периодичностью
Приложение делает JSON запрос с помощью DownloadJSONTask, который наследуется от AsyncTask.
private class DownloadJSONTask extends AsyncTask<String,
Void,
String> {
@Override
protected String doInBackground(String... strings) {
URL url;
HttpURLConnection urlConnection = null;
StringBuilder result = new StringBuilder();
try {
url = new URL(strings[0]);
urlConnection = (HttpURLConnection) url.openConnection();
InputStream inputStream = urlConnection.getInputStream();
InputStreamReader inputStreamReader = new InputStreamReader(inputStream);
BufferedReader reader = new BufferedReader(inputStreamReader);
String line = reader.readLine();
while (line != null) {
result.append(line);
line = reader.readLine();
}
return result.toString();
} catch (IOException e) {
e.printStackTrace();
} finally {
if (urlConnection != null) {
urlConnection.disconnect();
}
}
return null;
}
@Override
protected void onPostExecute(String s) {
super.onPostExecute(s);
//обработка ответа и изменение UI
}
Нужно, чтобы эти действия выполнялись в фоне с периодичностью в 1 сутки, UI изменять не нужно, но нужно отправлять уведомление при определенных условиях. Читал про службы но не понял, стоит ли мне их использовать или есть другие способы. Можно ли как-то выполнять AsyncTask из служб или другим образом с определенной пeриодичностью?
Ответы (1 шт):
Автор решения: Ilnar
→ Ссылка
Используйте WorkManager . Это самое правильное решение. https://startandroid.ru/ru/courses/architecture-components/27-course/architecture-components/562-urok-29-workmanager-vvedenie.html