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

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

Войти
Регистрация
Восстановить пароль
 
naven
1 / 1 / 0
Регистрация: 18.11.2015
Сообщений: 73
#1

Уведомления в заданное время без Alarm - Программирование Android

03.01.2016, 20:21. Просмотров 497. Ответов 5
Метки нет (Все метки)

Пытаюсь вывести уведомление в заданное время не используя AlarmManager. Т.к. через AlarmManager, после перезагрузки, выводятся все уведомления по очереди, время и дата которых уже прошли, и остаётся висеть последнее уведомление. Причем если уведомлений много, то устройство вибрирует и звякает несколько секунд после каждой перезагрузки или каждый раз, как убивается процесс всякими Clean Master и другими похожими приложениями и соответственно после запуска процесса начинается тоже самое. Чем раздражает пользователя. Решил использовать такой код, но он не работает:
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
public class MyService extends Service {
    NotificationManager nm;
 
    public IBinder onBind(Intent intent) {
        return null;
    }
 
    void someTask() { }
 
    public int onStartCommand(Intent intent, int flags, int startId) {
        someTask();
        return super.onStartCommand(intent, flags, startId);
    }
 
    public void onDestroy() {
        super.onDestroy();
    }
 
    public void onCreate() {
        Calendar c = Calendar.getInstance();
        CharSequence date = c.get(Calendar.HOUR_OF_DAY) + "." + c.get(Calendar.MINUTE);
        if((date.equals("20.15")) || (date.equals("22.34")) || (date.equals("23.45"))) {
 
            CharSequence string1 = "Title";
            CharSequence string2 = "Text";
            nm = (NotificationManager) getSystemService(Context.NOTIFICATION_SERVICE);
            Notification notif = new Notification(R.mipmap.ic_launcher, string1,
                    System.currentTimeMillis());
 
            Intent intent1 = new Intent(this, MainActivity.class);
            PendingIntent pIntent = PendingIntent.getActivity(this, 0, intent1, 0);
 
            notif.setLatestEventInfo(this, string2, string1, pIntent);
 
            notif.flags |= Notification.FLAG_AUTO_CANCEL;
            notif.defaults = Notification.DEFAULT_ALL;
            nm.notify(1, notif);
        }
    }
}
Пожалуйста помогите разобраться или найти другие решения.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
03.01.2016, 20:21     Уведомления в заданное время без Alarm
Посмотрите здесь:

Alarm broadcastIntent убивается через какое-то время - Программирование Android
Привет! Я разрабатываю приложение похожее на будильник. Я использую Android 4.2.2. Проблема заключается в том, что после некоторого...

Push уведомления без сторонних сервисов - Программирование Android
Есть форма php, на которой располагается одна кнопка, при нажатии на эту кнопку на мобильный телефон (android) должно прийти push...

Ждать ответ заданное время - Программирование Android
Как реализовать такое: Я отправляю на сервер TCP данные и затем в течение определенного времени жду от сервера ответ?? Как сделать так...

Выводить оповещения в заданное время - Программирование Android
Здравствуйте. Нужно выводить оповещения в заданное время, создаю сервис через alarmManager, однако, если добавить несколько оповещений,...

Как запустить метод в заданное время - Программирование Android
Доброго времени суток) Борюсь над задачей, в которой нужно, чтобы в указанное время запускался метод, даже если приложение было...

Переход между Activity через заданное время. Как лучше? - Программирование Android
Добрый день. Вопрос от новичка. Какую задачу хотел решить: появляется первое Activity. Через 5 секунд (например) - приложение...

После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
naven
1 / 1 / 0
Регистрация: 18.11.2015
Сообщений: 73
18.01.2016, 01:26  [ТС]     Уведомления в заданное время без Alarm #2
Неужели никто не может помочь?
DarkVortex
102 / 68 / 18
Регистрация: 07.07.2014
Сообщений: 239
18.01.2016, 08:41     Уведомления в заданное время без Alarm #3
Цитата Сообщение от naven Посмотреть сообщение
Т.к. через AlarmManager, после перезагрузки, выводятся все уведомления по очереди, время и дата которых уже прошли, и остаётся висеть последнее уведомление.
Ну это вроде как нормальное поведение, вы же не хотите чтобы ваш пользователь что-то важное пропустил? А если и хотите так не показывайте эти уведомления. Просто когда срабатывает AlarmManager проверяйте не прошло ли достаточно времени, чтобы это уведомление не показывать, таким образом поступайте и во всех остальных случаях и никак иначе не выйдет. А код который вы привели сработает только если приложение запустится в минуту когда вам нужно показать уведомление, так не пойдет, и никакими другими способами вы не сможете корректно отследить время показа уведомления т.к. ваше приложение может быть просто убито. А AlarmManager для того и создан, чтобы воскресить/разбудить ваше приложение в указанное время, а что потом делать это уже ваша проблема.
Rube
911 / 559 / 88
Регистрация: 13.02.2014
Сообщений: 2,070
18.01.2016, 08:58     Уведомления в заданное время без Alarm #4
Цитата Сообщение от naven Посмотреть сообщение
Т.к. через AlarmManager, после перезагрузки, выводятся все уведомления по очереди, время и дата которых уже прошли, и остаётся висеть последнее уведомление.
Я не вам ли уже рассказывал путь решения этой проблемы?
naven
1 / 1 / 0
Регистрация: 18.11.2015
Сообщений: 73
18.01.2016, 13:47  [ТС]     Уведомления в заданное время без Alarm #5
DarkVortex, а как правильно проверять, не прошло ли время? А то у меня ничего не получается. Если можно пример.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
22.01.2016, 03:00     Уведомления в заданное время без Alarm
Еще ссылки по теме:

Alarm Manager - Программирование Android
Здравствуйте . Подскажите , правильно ли я понимаю что "Alarm Manager "не рекомендуют использовать начиная API 19 (KITKAT)? Note: The...

Отменить Alarm - Программирование Android
Я сел делать будильник, и встретился c AlarmManager. Все вроде прекрасно, и сделал Receiver, и устанавливаю время звонка и все это...

Не удаляется Alarm - Программирование Android
Запускаю Alarm так intent = new Intent(context, MyAlarmReceiver.class); intent.setAction(action); intent.putExtra("WID",...

Периодический alarm не срабатывает - Программирование Android
Нужно установить alarm с некой периодичностью. Когда устанавливаю на 15 сек, то все работает отлично alarmManager.set(AlarmManager.RTC,...

Ошибки в коде. Alarm Manager - Программирование Android
Идея: в определенное время выводит нотификейшен с определенным текстом. Не могу понять почему не работает. Сделано на старой версии...

Alarm manager не запускается чаще чем раз в час - Программирование Android
Есть сервис с Alarm manager'ом package com.ww4u.orderbook2; import android.app.AlarmManager; import...


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

Или воспользуйтесь поиском по форуму:
naven
1 / 1 / 0
Регистрация: 18.11.2015
Сообщений: 73
22.01.2016, 03:00  [ТС]     Уведомления в заданное время без Alarm #6
Rube, как правильно проверить прошло ли время и если прошло, то не выводить уведомление? Если можно пример.
Yandex
Объявления
22.01.2016, 03:00     Уведомления в заданное время без Alarm
Ответ Создать тему
Опции темы

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