Форум программистов, компьютерный форум CyberForum.ru

Уведомление по заданному времени - Android

Восстановить пароль Регистрация
 
 
Рейтинг: Рейтинг темы: голосов - 9, средняя оценка - 4.67
naven
1 / 1 / 0
Регистрация: 18.11.2015
Сообщений: 70
18.11.2015, 02:14     Уведомление по заданному времени #1
Я начинающий программист-самоучка, поэтому прошу помощи. Не могу разобраться как сделать, чтоб выводилось уведомление в заданное время и дату. Например, поздравление с новым годом. Как выводить уведомления понял, а вот как установить его на определённую дату и время? Если можно пример.
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
SkylorD759626
0 / 0 / 0
Регистрация: 18.11.2015
Сообщений: 4
18.11.2015, 04:01     Уведомление по заданному времени #2
Опишите ситуацию полностью. Что за уведомление в какой программе.
Rube
910 / 558 / 87
Регистрация: 13.02.2014
Сообщений: 2,064
18.11.2015, 08:02     Уведомление по заданному времени #3
naven, поискать по теме никак?
AlarmManager не работает после закрытия приложения
naven
1 / 1 / 0
Регистрация: 18.11.2015
Сообщений: 70
18.11.2015, 12:06  [ТС]     Уведомление по заданному времени #4
Приложение с датами. В заданное время надо выводить уведомление. Например, 1 января выводит "Новый год", 23 февраля "День защитника отечества".
Паблито
не спать!
1874 / 1608 / 496
Регистрация: 12.05.2014
Сообщений: 5,810
Завершенные тесты: 1
18.11.2015, 13:11     Уведомление по заданному времени #5
попроси друга что бы напомнил
bastrakov
91 / 91 / 14
Регистрация: 10.10.2015
Сообщений: 307
Записей в блоге: 1
18.11.2015, 14:34     Уведомление по заданному времени #6
http://android-helper.com.ua/alarm/
оно?
naven
1 / 1 / 0
Регистрация: 18.11.2015
Сообщений: 70
18.11.2015, 15:30  [ТС]     Уведомление по заданному времени #7
bastrakov, а как там задать дату?
YuraAAA
 Аватар для YuraAAA
1563 / 1305 / 269
Регистрация: 25.10.2009
Сообщений: 3,424
Записей в блоге: 2
18.11.2015, 16:05     Уведомление по заданному времени #8
naven, там же в ссылке всё написано
long triggerAtMillis
Rube
910 / 558 / 87
Регистрация: 13.02.2014
Сообщений: 2,064
18.11.2015, 18:46     Уведомление по заданному времени #9
Цитата Сообщение от YuraAAA Посмотреть сообщение
там же в ссылке всё написано
А он по ссылкам не ходит
naven
1 / 1 / 0
Регистрация: 18.11.2015
Сообщений: 70
18.11.2015, 20:49  [ТС]     Уведомление по заданному времени #10
Rube, не надо умничать.

Добавлено через 1 минуту
YuraAAA, я перешел по ссылке, но толку? Можно подробнее объяснить как задать дату?

Добавлено через 1 минуту
Я же сразу написал, что самоучка начинающий.
Паблито
18.11.2015, 20:53
  #11

Не по теме:

Цитата Сообщение от naven Посмотреть сообщение
Я же сразу написал, что самоучка начинающий.
ты же не читал что там написано, по ссылке, самоучки так не делают
и кода никакого своего не показал

naven
1 / 1 / 0
Регистрация: 18.11.2015
Сообщений: 70
18.11.2015, 20:59  [ТС]     Уведомление по заданному времени #12
Паблито, я тебя понял. Но если не хочешь помочь, зачем пустословить и форум засорять. Согласен? Я понимаю, что здесь все супер-мега-программисты и поэтому попросил помощи.
YuraAAA
 Аватар для YuraAAA
1563 / 1305 / 269
Регистрация: 25.10.2009
Сообщений: 3,424
Записей в блоге: 2
18.11.2015, 23:10     Уведомление по заданному времени #13
naven, я тоже самоучка. Как и 95% тут сидящих. По ссылке, которую Вам дали, есть вся информация. Паблито и Rube Вам все верно говорят.
naven
1 / 1 / 0
Регистрация: 18.11.2015
Сообщений: 70
21.11.2015, 01:57  [ТС]     Уведомление по заданному времени #14
Ну вот, что у меня получилось. Только уведомление выскакивает сразу, а активити по заданному времени. Как это исправить?
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
public class MyService extends Service {
  NotificationManager nm;
  
  @Override
  public void onCreate() {
    super.onCreate();
    nm = (NotificationManager) getSystemService(NOTIFICATION_SERVICE);
  }
 
  public int onStartCommand(Intent intent, int flags, int startId) {
    sendNotif();
    return super.onStartCommand(intent, flags, startId);
  }
  
  void sendNotif() {
    Notification notif = new Notification(R.drawable.ic_launcher, "Text in status bar", 
      System.currentTimeMillis());
    
    Intent intent = new Intent(this, MainActivity.class);
    intent.putExtra(MainActivity.FILE_NAME, "somefile");
    PendingIntent pIntent = PendingIntent.getActivity(this, 0, intent, 0);
    AlarmManager alarm = (AlarmManager)getSystemService(ALARM_SERVICE);
    Calendar cal = Calendar.getInstance();
 
    cal.set(Calendar.MONTH, November);
    cal.set(Calendar.DAY_OF_MONTH, 19);
    cal.set(Calendar.HOUR_OF_DAY, 20);
    cal.set(Calendar.MINUTE, 15);
    cal.set(Calendar.SECOND, 10);
     
    notif.setLatestEventInfo(this, "Notification's title", "Notification's text", pIntent);
    
    notif.flags |= Notification.FLAG_AUTO_CANCEL;
    notif.defaults = Notification.DEFAULT_ALL;   
    nm.notify(1, notif);
 
 alarm.set(AlarmManager.RTC_WAKEUP, cal.getTimeInMillis(), pIntent);
  }
  
  public IBinder onBind(Intent arg0) {
    return null;
  }
}
Rube
910 / 558 / 87
Регистрация: 13.02.2014
Сообщений: 2,064
21.11.2015, 20:14     Уведомление по заданному времени #15
notif надо перенести в другой сервис, а сервис вызывать из PendingIntent.
Вместо PendingIntent.getActivity - PendingIntent.getService
naven
1 / 1 / 0
Регистрация: 18.11.2015
Сообщений: 70
21.11.2015, 21:28  [ТС]     Уведомление по заданному времени #16
Rube, то есть, этот сервис должен быть в другом файле? И еще вопрос. При перезагрузке устройства выводит последний alarm, который уже выполнился. Можно это как то исправить?
Rube
910 / 558 / 87
Регистрация: 13.02.2014
Сообщений: 2,064
21.11.2015, 21:39     Уведомление по заданному времени #17
В другом да. Надо BroadcastReceiver делать на загрузку устройства, а там запускать заново AlarmManager. Да еще проверять не стало ли время прошлым. Где то на форуме уже писал я про это.
naven
1 / 1 / 0
Регистрация: 18.11.2015
Сообщений: 70
21.11.2015, 21:45  [ТС]     Уведомление по заданному времени #18
Да приложение загружается. Но выдает последнее уведомление. Время проверяешь и что это дает?
Rube
910 / 558 / 87
Регистрация: 13.02.2014
Сообщений: 2,064
21.11.2015, 23:02     Уведомление по заданному времени #19
Это так, на будущее, если период будешь использовать. Впрочем мб такая ситуевина, поставил ты ув. на понедельник, а включил тел только во вторник, бродкаст увидел, что время то прошло и выдал ув. о пропуске события.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
22.11.2015, 22:20     Уведомление по заданному времени
Еще ссылки по теме:

Уведомление пользователя при выходе из приложения Android
Android Оповещение по заданному времени и дате
Уведомление клиентов Android
Постоянное уведомление на шторке Android
Отправляем уведомление с подтверждением да или нет Android

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
naven
1 / 1 / 0
Регистрация: 18.11.2015
Сообщений: 70
22.11.2015, 22:20  [ТС]     Уведомление по заданному времени #20
Понял. Спасибо.

Добавлено через 14 часов 43 минуты
Rube, просто если id notifications разный, то после перезагрузки устройства все notifications выводятся. Можно это как то исправить? А то иногда надо чтоб два уведомления рядом выводились, а не заменялись.

Добавлено через 8 часов 27 минут
Или может есть вариант без будильника уведомления выводить?
Yandex
Объявления
22.11.2015, 22:20     Уведомление по заданному времени
Ответ Создать тему
Опции темы

Текущее время: 05:38. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru