Здравствуйте, я новичок в использовании android studio и пытаюсь создать приложение, которое уведомит меня, когда новая статья будет опубликована на сайте моего университета. До сих пор мне удавалось сделать это, используя jsoup и сравнивая 2 текстовых просмотра
Первым является Jsoup, извлеченный из веб-сайта, который затем сохраняется во втором текстовом виде с общими настройками, когда создается сообщение и 2 текстовых просмотра не совпадают с созданным уведомлением
Вот код publi c class doit extends AsyncTask {String desct;
@Override
protected Void doInBackground(Void... voids) {
try {
Document doc = Jsoup.connect("My uni's website").get();
Element main = doc.select("h2[class=entry-title]").get(0);
desct = main.text();
}
catch (Exception e){e.printStackTrace();}
return null;
}
@Override
protected void onPostExecute(Void aVoid) {
super.onPostExecute(aVoid);
text.setText(desct);
if (NetworkUtils.isNetworkConnected(getApplicationContext()) && text2.getText().toString().equals(text.getText().toString())) {
}
else if(NetworkUtils.isNetworkConnected(getApplicationContext())&& text.getText().length() > 1){
Log.d("123","text2");
text2.setText(text.getText().toString());
SharedPreferences.Editor preferencesEditor = savedFields.edit();
preferencesEditor.putString("Update", text2.getText().toString());
preferencesEditor.commit();
sendOnChannel1(); /* this is the notification channel */
}
}}
Моя проблема заключается в том, что мое приложение ищет только уведомления когда он работал, я искал способы заставить мое приложение искать уведомления, но есть так много вещей (Alarm Manager, WorkManager, JobScheduler, BroadcastReceiver, Intent service, Foreground Service), что я был ошеломлен и запутался.
также я читал об ограничениях после Android 8, поэтому многие из этих методов даже не работают
Мой вопрос: какой метод я должен использовать, чтобы я мог запустить вышеупомянутую асинхронную задачу, когда приложение не запускается один раз? каждый час
Также это «путь», который я проверяю уведомления хорошие? я должен попытаться сделать это более чистым или я должен оставить это, поскольку это работает?
Спасибо за ваше время