1

Я пытаюсь сделать уведомление, которое появляется, когда происходит определенный день года. Я не могу понять, как получить Android. Как я могу проверить Android каждый день в этом приложении?Уведомление не отображается, когда активность закрыта

cal = Calendar.getInstance(); 
    dayOfYear = cal.get(Calendar.DAY_OF_YEAR); 

    payDays = new int[12]; 

    payDays[0] = 60; 
    payDays[1] = 88; 
    payDays[2] = 123; 
    payDays[3] = 151;... 

    // Checks when to send the notification 
    if (dayOfYear == payDays[0] || 
     dayOfYear == payDays[1] || 
     dayOfYear == payDays[2] || 
     dayOfYear == payDays[3] || 

    { 

     Builder builder = new Notification.Builder(this) 
     .setContentTitle("Phone Commission") 
     .setContentText("Expand for totals") 
     .setSmallIcon(R.drawable.notify2); 


     Notification notification = new Notification.BigTextStyle(builder) 
       .bigText("Add-a-Line: " + AALNote + 
         "\nUpgrades: " + UPGNote + 
         "\nNew Lines: " + NLNote + 
         "\nYour total commission is: " + "$" + totalNote).build(); 

      NotificationManager notify = (NotificationManager) getSystemService(NOTIFICATION_SERVICE); 
       notify.notify(0, notification); 

    } 

ответ

0

Вам необходимо установить будильник. Вы не можете сделать что-то подобное в Activity. Вы должны установить этот аварийный сигнал в службе, потому что при этом в Activity произойдет его потеря после завершения операции.

+0

API для этого является AlarmManager? – user1985295

+0

Да. Это в основном позволяет вам установить PendingIntent, который будет вызываться по истечении времени. Вы можете либо использовать гиперточные версии, либо менее точные. Для вашего случая я бы использовал менее точные, несколько секунд не имеет значения. Обратите внимание, что это не будет работать при перезагрузках, чтобы сделать это, вам нужно будет заставить широковещательный приемник прослушивать BOOT_COMPLETE и запускать службу. –

+0

спасибо, ребята за вход – user1985295

Смежные вопросы