Форум программистов, компьютерный форум, киберфорум
Наши страницы
Программирование Android
Войти
Регистрация
Восстановить пароль
 
 
Рейтинг 5.00/14: Рейтинг темы: голосов - 14, средняя оценка - 5.00
naven
1 / 1 / 0
Регистрация: 18.11.2015
Сообщений: 73
#1

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

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

Я начинающий программист-самоучка, поэтому прошу помощи. Не могу разобраться как сделать, чтоб выводилось уведомление в заданное время и дату. Например, поздравление с новым годом. Как выводить уведомления понял, а вот как установить его на определённую дату и время? Если можно пример.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
18.11.2015, 02:14
Ответы с готовыми решениями:

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

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

Уведомление клиентов
Мне нужно реализовать оповещения по типу Vkontakte, где когда нам приходить...

Обновляемое уведомление
Доброго времени суток. Не получается создавать уведомление в AsynkTask в...

Не выводится уведомление
Всем привет! Хочу сделать показ уведомления, использую для этого такой код, но...

39
naven
1 / 1 / 0
Регистрация: 18.11.2015
Сообщений: 73
25.11.2015, 23:56  [ТС] #21
Можно это исправить?
0
Rube
911 / 559 / 88
Регистрация: 13.02.2014
Сообщений: 2,074
26.11.2015, 08:50 #22
Какие "все notifications"?
Вижу только один nm.notify(1, notif);
0
naven
1 / 1 / 0
Регистрация: 18.11.2015
Сообщений: 73
26.11.2015, 17:49  [ТС] #23
Rube, ну у меня несколько их. И они выводятся все сразу, если id разный. Если одинаковый, то последнее выводится.
0
Spelcrawler
531 / 501 / 113
Регистрация: 12.03.2014
Сообщений: 1,666
Завершенные тесты: 1
26.11.2015, 17:51 #24
Цитата Сообщение от naven Посмотреть сообщение
если id notifications разный, то после перезагрузки устройства все notifications выводятся. Можно это как то исправить?
Цитата Сообщение от naven Посмотреть сообщение
Если одинаковый, то последнее выводится
Вроде как в вопросе уже есть ответ.
0
naven
1 / 1 / 0
Регистрация: 18.11.2015
Сообщений: 73
26.11.2015, 17:56  [ТС] #25
Spelcrawler, просто надо чтоб id был разный.
0
Spelcrawler
531 / 501 / 113
Регистрация: 12.03.2014
Сообщений: 1,666
Завершенные тесты: 1
26.11.2015, 17:58 #26
naven, если ид разный - уведомления разные, а все разные уведомления будут показаны. Если ид одинаковый у нескольких уведомлений - они будут показаны все по очереди, но не будут создавать новое уведомление, а заменят собой старое. Тут только так и никак больше.
1
naven
1 / 1 / 0
Регистрация: 18.11.2015
Сообщений: 73
26.11.2015, 18:02  [ТС] #27
Spelcrawler, а можно как-то без аларм, чтоб избежать эту проблему?
0
Spelcrawler
531 / 501 / 113
Регистрация: 12.03.2014
Сообщений: 1,666
Завершенные тесты: 1
26.11.2015, 18:04 #28
naven, можно и без аларм, но проблему это не решит. Ид на аларм и ид на уведомление это разные вещи.
1
naven
1 / 1 / 0
Регистрация: 18.11.2015
Сообщений: 73
26.11.2015, 18:08  [ТС] #29
Spelcrawler, я знаю, что это разные вещи.
0
Spelcrawler
531 / 501 / 113
Регистрация: 12.03.2014
Сообщений: 1,666
Завершенные тесты: 1
26.11.2015, 18:11 #30
naven, тогда не понимаю в чем проблема.
1
naven
1 / 1 / 0
Регистрация: 18.11.2015
Сообщений: 73
26.11.2015, 18:21  [ТС] #31
Spelcrawler, то есть нет вариантов сделать так чтоб уведомления после перезагрузки Не выводились? Последние уведомления.
0
Rube
911 / 559 / 88
Регистрация: 13.02.2014
Сообщений: 2,074
26.11.2015, 19:31 #32
naven, может хватит ромашка играть? Код выложи сюда. Чего то намудрил в броадкасте видимо.
0
naven
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
Rube
911 / 559 / 88
Регистрация: 13.02.2014
Сообщений: 2,074
27.11.2015, 08:12 #34
Ну дык при загрузке устройства BroadcastReceiver запускает метод onReceive, а nm.notify запускает уведомление.
1. Используйте один BroadcastReceiver, зачем 2?
2. Запускайте в нем AlarmManager, а не Notification.
0
naven
1 / 1 / 0
Регистрация: 18.11.2015
Сообщений: 73
27.11.2015, 14:07  [ТС] #35
Rube, при загрузке устройства у меня запускается MyService это первый код, а второй и третий это само уведомление.
0
Rube
911 / 559 / 88
Регистрация: 13.02.2014
Сообщений: 2,074
27.11.2015, 14:30 #36
naven, ну значит совершенно неправильный алгоритм. Составьте блок схему, это очень помогает.
Цитата Сообщение от naven Посмотреть сообщение
а второй и третий это само уведомление
а второй и третий это запуск при включении устройства.
Найдите уже туториал по AlarmManager и BroadcastReceiver, их пруд пруди в инете.
0
naven
1 / 1 / 0
Регистрация: 18.11.2015
Сообщений: 73
27.11.2015, 14:36  [ТС] #37
Rube, ну BroadcastReceiver запускает сервис, а в сервисе уже AlarmManager. Аларм по расписанию запускает класс с уведомление. Что не так то?
0
Rube
911 / 559 / 88
Регистрация: 13.02.2014
Сообщений: 2,074
27.11.2015, 18:12 #38
Ткните меня в то место где BroadcastReceiver запускает сервис.
0
naven
1 / 1 / 0
Регистрация: 18.11.2015
Сообщений: 73
27.11.2015, 18:14  [ТС] #39
Rube, ну это на словах, я это в коде выше не написал.
0
naven
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
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
23.12.2015, 23:39

Уведомление по таймеру
Добрый день. Делаю свой первый проект на Андроид студио...

Уведомление в фоне
как сделать чтобы создавались уведомления от приложения даже когда оно...

Постоянное уведомление на шторке
Как сделать обычное уведомление на шторке , понятно. Но оно после клика и...


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

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

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