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

Программирование Android

Войти
Регистрация
Восстановить пароль
 
ZYL
3 / 3 / 0
Регистрация: 12.01.2013
Сообщений: 47
#1

Оповещение по заданному времени и дате - Программирование Android

26.12.2015, 16:03. Просмотров 295. Ответов 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()) работает не так, как ожидалось, он просто выводит дату в окошко оповещения, я то думал он время оповещения задаёт..
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
26.12.2015, 16:03     Оповещение по заданному времени и дате
Посмотрите здесь:
Android Получение доступа к дате/времени планшета
Уведомление по заданному времени Android
Android Оповещение в UI из потока
Оповещение при звонке Android
Android Оповещение в приложение, к которому нет доступа
Неправильно работает оповещение google Firebase Android
Android Поиск по дате в БД
Выборка по дате в listView Android
Получить TimeZone по дате Android
Android Получить день недели по дате
C# Оповещение в трее с при определенном времени
Оповещение о печатании текста на текущий момент времени JavaScript

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
YuraAAA
1565 / 1307 / 269
Регистрация: 25.10.2009
Сообщений: 3,424
Записей в блоге: 2
26.12.2015, 16:37     Оповещение по заданному времени и дате #2
ZYL, почитайте про AlarmManager
ZYL
3 / 3 / 0
Регистрация: 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);
Yandex
Объявления
26.12.2015, 18:40     Оповещение по заданному времени и дате
Ответ Создать тему
Опции темы

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