2016-06-06 3 views
0

У меня есть приложение, которое я хочу отправить уведомления в нечетные дни (например, 1,3,5 дня месяца). После исследования я понял, что мне нужна услуга. Но я не могу понять, как получить новую дату каждый день или как заметить услугу, которую изменил день ... Что-то вроде слушателя в день изменилось ... Я много искал и только нашел ссылки на как планировать уведомление в определенную дату, но это не то, что мне нужно, поскольку я хочу проверять дату каждый день. Большое спасибо за любую помощь!Как отправить уведомление по конкретным датам, проверив дату

ответ

1

Вы можете сделать это с помощью Android Alarms.

шаги, которые вы должны сделать:

  1. Начало предупредительного сигнала на дату и время, в которое вам нужно, чтобы показать уведомление.

  2. Подписаться на Reboot радиовещательный приемник и установить один и тот же сигнал тревоги снова (так как сигнал, что вы установили пропадут после того, как устройство будет перезапущен)

  3. Когда будильник тикает, вы можете показать уведомление от Приемник тревожного вещания, а затем установите для нового сигнала тревоги.

Чтобы запланировать ТРЕВОГА:

AlarmManager mgr= 
    (AlarmManager)ctxt.getSystemService(Context.ALARM_SERVICE); 
Intent i=new Intent(ctxt, ScheduledService.class); 
PendingIntent pi=PendingIntent.getService(ctxt, 0, i, 0); 

mgr.setRepeating(AlarmManager.ELAPSED_REALTIME, 
       SystemClock.elapsedRealtime() + DIFF_PERIOD, PERIOD, pi); 

Где ПЕРИОДА: 48 часов в миллисекунду

DIFF_PERIOD: время до ближайшего клеща. То есть, если вы находитесь в 2-й день, и вам нужно вызвать будильник в день 3, то это значение будет: 24 часа в миллисекундах

Чтобы ответить на ваш комментарий.

Чтобы найти день месяца, вы можете использовать follwing:

Calendar cal = Calendar.getInstance(); 
int year = cal.get(Calendar.YEAR); 
int month = cal.get(Calendar.MONTH); 
int day = cal.get(Calendar.DAY_OF_MONTH); 
+0

Благодарим за Ваш ответ! Я не понимаю, как узнать, что такое текущий день ... Как вы говорите «если вы в день 2» ... Whis - это параметр, который дает мне реальное время (а не время, прошедшее с загрузки) ? – Rucsi

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