Форум программистов, компьютерный форум, киберфорум
Программирование Android
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.75/65: Рейтинг темы: голосов - 65, средняя оценка - 4.75
1 / 1 / 0
Регистрация: 18.11.2015
Сообщений: 73
1

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

18.11.2015, 02:14. Показов 13333. Ответов 39
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Я начинающий программист-самоучка, поэтому прошу помощи. Не могу разобраться как сделать, чтоб выводилось уведомление в заданное время и дату. Например, поздравление с новым годом. Как выводить уведомления понял, а вот как установить его на определённую дату и время? Если можно пример.
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
18.11.2015, 02:14
Ответы с готовыми решениями:

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

Оповещение по заданному времени и дате
Здравствуйте, есть задача вывести оповещение по заданной пользователем дате и времени. В сети...

Как посчитать сколько времени прошло по заданному интервалу времени
Например сколько времени прошло от 10:00 до 9:59? часовой формат 23 часовой. Пробовал циклами...

Подсчет времени занятия (по заданному времени начала и окончания)
В первой строке написано три целых числа A, B, C (0 ≤ A ≤ 23, 0 ≤ B ≤ 59, 0 ≤ C ≤...

39
1 / 1 / 0
Регистрация: 18.11.2015
Сообщений: 73
25.11.2015, 23:56  [ТС] 21
Author24 — интернет-сервис помощи студентам
Можно это исправить?
0
912 / 560 / 88
Регистрация: 13.02.2014
Сообщений: 2,081
26.11.2015, 08:50 22
Какие "все notifications"?
Вижу только один nm.notify(1, notif);
0
1 / 1 / 0
Регистрация: 18.11.2015
Сообщений: 73
26.11.2015, 17:49  [ТС] 23
Rube, ну у меня несколько их. И они выводятся все сразу, если id разный. Если одинаковый, то последнее выводится.
0
535 / 504 / 114
Регистрация: 12.03.2014
Сообщений: 1,671
26.11.2015, 17:51 24
Цитата Сообщение от naven Посмотреть сообщение
если id notifications разный, то после перезагрузки устройства все notifications выводятся. Можно это как то исправить?
Цитата Сообщение от naven Посмотреть сообщение
Если одинаковый, то последнее выводится
Вроде как в вопросе уже есть ответ.
0
1 / 1 / 0
Регистрация: 18.11.2015
Сообщений: 73
26.11.2015, 17:56  [ТС] 25
Spelcrawler, просто надо чтоб id был разный.
0
535 / 504 / 114
Регистрация: 12.03.2014
Сообщений: 1,671
26.11.2015, 17:58 26
naven, если ид разный - уведомления разные, а все разные уведомления будут показаны. Если ид одинаковый у нескольких уведомлений - они будут показаны все по очереди, но не будут создавать новое уведомление, а заменят собой старое. Тут только так и никак больше.
1
1 / 1 / 0
Регистрация: 18.11.2015
Сообщений: 73
26.11.2015, 18:02  [ТС] 27
Spelcrawler, а можно как-то без аларм, чтоб избежать эту проблему?
0
535 / 504 / 114
Регистрация: 12.03.2014
Сообщений: 1,671
26.11.2015, 18:04 28
naven, можно и без аларм, но проблему это не решит. Ид на аларм и ид на уведомление это разные вещи.
1
1 / 1 / 0
Регистрация: 18.11.2015
Сообщений: 73
26.11.2015, 18:08  [ТС] 29
Spelcrawler, я знаю, что это разные вещи.
0
535 / 504 / 114
Регистрация: 12.03.2014
Сообщений: 1,671
26.11.2015, 18:11 30
naven, тогда не понимаю в чем проблема.
1
1 / 1 / 0
Регистрация: 18.11.2015
Сообщений: 73
26.11.2015, 18:21  [ТС] 31
Spelcrawler, то есть нет вариантов сделать так чтоб уведомления после перезагрузки Не выводились? Последние уведомления.
0
912 / 560 / 88
Регистрация: 13.02.2014
Сообщений: 2,081
26.11.2015, 19:31 32
naven, может хватит ромашка играть? Код выложи сюда. Чего то намудрил в броадкасте видимо.
0
1 / 1 / 0
Регистрация: 18.11.2015
Сообщений: 73
26.11.2015, 21:28  [ТС] 33
Rube,
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
    @Override
    public void onCreate() {
        super.onCreate();
        Intent myIntent = new Intent(this, Happi.class) ;
        PendingIntent pIntent1 = PendingIntent.getBroadcast(this, 0, myIntent, 0);
        AlarmManager alarm = (AlarmManager)getSystemService(ALARM_SERVICE);
        Calendar cal = Calendar.getInstance();
        cal.set(Calendar.MONTH, Calendar.NOVEMBER);
        cal.set(Calendar.DAY_OF_MONTH, 19);
        cal.set(Calendar.HOUR_OF_DAY, 20);
        cal.set(Calendar.MINUTE, 15);
        cal.set(Calendar.SECOND, 0);
        alarm.set(AlarmManager.RTC_WAKEUP, cal.getTimeInMillis(), pIntent1);
 
        Intent myIntent2 = new Intent(this, Newer.class) ;
        PendingIntent pIntent2 = PendingIntent.getBroadcast(this, 0, myIntent2, 0);
        AlarmManager alarm2 = (AlarmManager)getSystemService(ALARM_SERVICE);
        Calendar cal2 = Calendar.getInstance();
        cal2.set(Calendar.MONTH, Calendar.NOVEMBER);
        cal2.set(Calendar.DAY_OF_MONTH, 19);
        cal2.set(Calendar.HOUR_OF_DAY, 20);
        cal2.set(Calendar.MINUTE, 16);
        cal2.set(Calendar.SECOND, 0);
        alarm2.set(AlarmManager.RTC_WAKEUP, cal2.getTimeInMillis(), pIntent2);
 
     }
 
 
    public IBinder onBind(Intent arg0) {
        return null;
    }
}
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
public class Happi extends BroadcastReceiver {
    NotificationManager nm;
 
    @Override
    public void onReceive(Context context, Intent intent) {
        String string1 = context.getResources().getString(R.string.an);
        String string2 = context.getResources().getString(R.string.prd);
        nm = (NotificationManager) context.getSystemService(Context.NOTIFICATION_SERVICE);
        Notification notif = new Notification(R.mipmap.ic_launcher, string1,
                System.currentTimeMillis());
 
        Intent intent1 = new Intent(context, MainActivity.class);
        intent1.putExtra(MainActivity.FILE_NAME, "somefile");
        PendingIntent pIntent = PendingIntent.getActivity(context, 0, intent1, 0);
 
        notif.setLatestEventInfo(context, string2, string1, pIntent);
 
        notif.flags |= Notification.FLAG_AUTO_CANCEL;
        notif.defaults = Notification.DEFAULT_ALL;
        nm.notify(1, notif);
 
    }
}
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
public class Newer extends BroadcastReceiver {
    NotificationManager nm;
 
    @Override
    public void onReceive(Context context, Intent intent) {
        String string1 = context.getResources().getString(R.string.kr);
        String string2 = context.getResources().getString(R.string.prd);
        nm = (NotificationManager) context.getSystemService(Context.NOTIFICATION_SERVICE);
        Notification notif = new Notification(R.mipmap.ic_launcher, string1,
                System.currentTimeMillis());
 
        Intent intent1 = new Intent(context, MainActivity.class);
        intent1.putExtra(MainActivity.FILE_NAME, "somefile");
        PendingIntent pIntent = PendingIntent.getActivity(context, 0, intent1, 0);
 
        notif.setLatestEventInfo(context, string2, string1, pIntent);
 
        notif.flags |= Notification.FLAG_AUTO_CANCEL;
        notif.defaults = Notification.DEFAULT_ALL;
        nm.notify(2, notif);
 
    }
}
0
912 / 560 / 88
Регистрация: 13.02.2014
Сообщений: 2,081
27.11.2015, 08:12 34
Ну дык при загрузке устройства BroadcastReceiver запускает метод onReceive, а nm.notify запускает уведомление.
1. Используйте один BroadcastReceiver, зачем 2?
2. Запускайте в нем AlarmManager, а не Notification.
0
1 / 1 / 0
Регистрация: 18.11.2015
Сообщений: 73
27.11.2015, 14:07  [ТС] 35
Rube, при загрузке устройства у меня запускается MyService это первый код, а второй и третий это само уведомление.
0
912 / 560 / 88
Регистрация: 13.02.2014
Сообщений: 2,081
27.11.2015, 14:30 36
naven, ну значит совершенно неправильный алгоритм. Составьте блок схему, это очень помогает.
Цитата Сообщение от naven Посмотреть сообщение
а второй и третий это само уведомление
а второй и третий это запуск при включении устройства.
Найдите уже туториал по AlarmManager и BroadcastReceiver, их пруд пруди в инете.
0
1 / 1 / 0
Регистрация: 18.11.2015
Сообщений: 73
27.11.2015, 14:36  [ТС] 37
Rube, ну BroadcastReceiver запускает сервис, а в сервисе уже AlarmManager. Аларм по расписанию запускает класс с уведомление. Что не так то?
0
912 / 560 / 88
Регистрация: 13.02.2014
Сообщений: 2,081
27.11.2015, 18:12 38
Ткните меня в то место где BroadcastReceiver запускает сервис.
0
1 / 1 / 0
Регистрация: 18.11.2015
Сообщений: 73
27.11.2015, 18:14  [ТС] 39
Rube, ну это на словах, я это в коде выше не написал.
0
1 / 1 / 0
Регистрация: 18.11.2015
Сообщений: 73
23.12.2015, 23:39  [ТС] 40
Почему ничего не срабатывает?
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);
        }
    }
}
0
23.12.2015, 23:39
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
23.12.2015, 23:39
Помогаю со студенческими работами здесь

Подсказать как сделать по истечение времени уведомление закрылось
Можете подсказать как сделать по истечение времени уведомление закрылось. Идея такая: Уведомление...

Выборка событий по заданному времени
Таблица Access (TimeLog) содержит данные о событиях, которые происходят в течение времени от...

Смена фона по заданному времени
Как сменить фон по заданному времени Есть скрипт времени ...

Добавить секунду к заданному времени
type time=record hour: 0..23; min, sec: 0..59 end; Описать процедуру SLEDSEC (t1,t2),...


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

Или воспользуйтесь поиском по форуму:
40
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru