Powiadomienie Android na czas

Szukam teraz godzin, jak to zrobić dokładnie:

Chcę, aby każdego dnia (z wyjątkiem weekendów) wysyłane było powiadomienie na raz (powiedzmy 18:00 (= 18:00)), z wyjątkiem sytuacji, gdy aplikacja jest już otwarta. Po otrzymaniu wiadomości jest to zasadniczo aplikacja gmail. Gdy użytkownik kliknie powiadomienie, powinno zniknąć i powinno zostać przeniesione do MainActivity.

W programie AlarmManager próbowałem wielu rzeczy, ale żaden z nich nie spowodował pojawienia się powiadomienia.

Kod, który próbowałem, który uważam za bliski poprawności, jest następujący: W mojej głównej aktywności:

AlarmManager alarmManager = (AlarmManager) this.getSystemService(ALARM_SERVICE);
Calendar calendar = Calendar.getInstance();
calendar.set(Calendar.HOUR_OF_DAY, 18);
Intent intent = new Intent(this, NotificationService.class);
PendingIntent pendingIntent = PendingIntent.getActivity(this, 0, intent, 0);
alarmManager.set(AlarmManager.RTC_WAKEUP, calendar.getTimeInMillis(), pendingIntent);

Moja usługa powiadamiania:

public class NotificationService extends IntentService {



    public NotificationService() {
        super("NotificationService");
    }

    @Override
    @SuppressWarnings("deprecation")
    protected void onHandleIntent(Intent intent) {
        NotificationManager nm = (NotificationManager) getSystemService(NOTIFICATION_SERVICE);
        Notification notification = new Notification(R.drawable.ic_launcher, "reminder", System.currentTimeMillis());
        notification.defaults |= Notification.DEFAULT_SOUND;
        notification.flags |= Notification.FLAG_AUTO_CANCEL;
        Intent notificationIntent = new Intent(this, MainActivity.class);
        PendingIntent contentIntent = PendingIntent.getActivity(this, 0, notificationIntent , 0);
        notification.setLatestEventInfo(getApplicationContext(), "It's about time", "You should open the app now", contentIntent);
        nm.notify(1, notification);
    }
}

Zauważ, że używam przestarzałych rzeczy, ponieważ był to jedyny sposób, w jaki kiedykolwiek pojawiło się powiadomienie, gdy nie działał z AlarmManager. Jeśli to możliwe, proszę zareagować za pomocą rozwiązania, które nie zawiera przestarzałych rzeczy, ale z aktualnymi materiałami: P.

Z góry wielu dzięki!

Z wyrazami szacunku

questionAnswers(1)

yourAnswerToTheQuestion