Форум программистов, компьютерный форум, киберфорум
Наши страницы
Программирование Android
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.67/3: Рейтинг темы: голосов - 3, средняя оценка - 4.67
ZYL
3 / 3 / 1
Регистрация: 12.01.2013
Сообщений: 47
1

Оповещение по заданному времени и дате

26.12.2015, 16:03. Просмотров 524. Ответов 2
Метки нет (Все метки)

Здравствуйте, есть задача вывести оповещение по заданной пользователем дате и времени.
В сети много примеров, но не понятно как с конкретной датой работать.
Буду благодарен пояснениям)

Пока имеется такой код :
Кликните здесь для просмотра всего текста

Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
Intent notificationIntent = new Intent(context, ToDoActivity.class);
notificationIntent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
 
PendingIntent contentIntent = PendingIntent.getActivity(context, 0, notificationIntent,
        PendingIntent.FLAG_CANCEL_CURRENT);
 
Notification.Builder builder = new Notification.Builder(context);
 
builder.setContentIntent(contentIntent)
         .setSmallIcon(R.drawable.ic_launcher)
         // Создаем оповещение сразу после добавления таска в приложении
         .setWhen(System.currentTimeMillis())
         .setContentTitle("Напоминание MyNotes")
         .setContentText(description);
 
Notification notification = builder.build();
notification.defaults = Notification.DEFAULT_SOUND;
 
NotificationManager notificationManager = (NotificationManager) context
        .getSystemService(Context.NOTIFICATION_SERVICE);
notificationManager.notify(Integer.parseInt(id), notification);


Добавлено через 54 минуты
Ошибочка вышла, метод .setWhen(System.currentTimeMillis()) работает не так, как ожидалось, он просто выводит дату в окошко оповещения, я то думал он время оповещения задаёт..
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
26.12.2015, 16:03
Ответы с готовыми решениями:

Уведомление по дате и времени
Здравствуйте,хочу попытаться создать простенькое приложение на андроид в...

Получение доступа к дате/времени планшета
В приложении необходимо сравнивать серверное время и время на планшете, и в...

Уведомление по заданному времени
Я начинающий программист-самоучка, поэтому прошу помощи. Не могу разобраться...

Оповещение в UI из потока
Доброго времени. суть проблеммы в сл. не работает повторное оповещение UI из...

Оповещение при звонке
Добрый вечер Возможно ли сделать так чтобы после того как пользователь отвечал...

2
YuraAAA
1578 / 1319 / 282
Регистрация: 25.10.2009
Сообщений: 3,436
Записей в блоге: 2
26.12.2015, 16:37 2
ZYL, почитайте про AlarmManager
0
ZYL
3 / 3 / 1
Регистрация: 12.01.2013
Сообщений: 47
26.12.2015, 18:40  [ТС] 3
Смотрел и в сторону AlarmManager, но как-то что-то..)
Ещё видел вариант через TimerTask сделать, но тоже не обошлось без ошибок

В случае, когда в timer.schedule() вторым параметром передаю задержку просто числом, всё работает но если задержку считать как разность дат в милисекундах thatDay.getTimeInMillisec() - System.currentTimeInMillisec(), получаю исключение delay < 0, даже если таск через минуту запланирован.

Если передаю вторым параметром thatDay.getTime(), то оповещение сразу приходит..
Может с датой и временем что-то не так.. Они строками заданы ("26/12/2015", "15:00")

Кликните здесь для просмотра всего текста
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
Timer timer = new Timer();
        TimerTask task = new TimerTask() {
            @Override
            public void run() {
                thatDay.set(Calendar.DAY_OF_MONTH, Integer.parseInt(date.substring(0, 2)));
                thatDay.set(Calendar.MONTH, Integer.parseInt(date.substring(3, 5)));
                thatDay.set(Calendar.YEAR, Integer.parseInt(date.substring(6,10)));
                thatDay.set(Calendar.HOUR_OF_DAY, Integer.parseInt(time.substring(0, 2)));
                thatDay.set(Calendar.MINUTE, Integer.parseInt(time.substring(3, 5)));
 
                Intent notificationIntent = new Intent(context, ToDoActivity.class);
                notificationIntent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
 
                PendingIntent contentIntent = PendingIntent.getActivity(context, 0, notificationIntent,
                        PendingIntent.FLAG_CANCEL_CURRENT);
 
                Notification.Builder builder = new Notification.Builder(context);
 
                builder.setContentIntent(contentIntent)
                        .setSmallIcon(R.drawable.ic_launcher)
                        .setWhen(System.currentTimeMillis())
                        .setContentTitle("Напоминание MyNotes")
                        .setContentText(description);
 
                Notification notification = builder.build();
                notification.defaults = Notification.DEFAULT_SOUND;
 
                NotificationManager notificationManager = (NotificationManager) context
                        .getSystemService(Context.NOTIFICATION_SERVICE);
                notificationManager.notify(Integer.parseInt(id), notification);
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
26.12.2015, 18:40

Неправильно работает оповещение google Firebase
Сделал оповещение настроил его таким образом private void...

Оповещение в приложение, к которому нет доступа
Возможно ли как-то показать сообщение всем, у кого установлено приложение? Но...

Оповещение в трее с при определенном времени
Не могу разобраться куда копать... Есть код,который выводит сообщение...


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

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2019, vBulletin Solutions, Inc.
Рейтинг@Mail.ru