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

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

Войти
Регистрация
Восстановить пароль
 
kpoxaa
72 / 33 / 1
Регистрация: 03.08.2012
Сообщений: 447
#1

Создать нотификацию, и не отображать ее ночью - Программирование Android

29.09.2014, 11:21. Просмотров 353. Ответов 6
Метки нет (Все метки)

Подскажите. Стоит такая задача. Нужно создавать нотификации таким образом, чтобы время старта нотификации было с 12 утра до 22 00 вечера. И нужно обязательно учесть часовой пояс.

Может быть есть какие-то готовые решения?

Моя нотификация создается за 7 дней до ее старта. Получается как отложенная нотификация. Существует шанс, что пользователь уедет из страны, например, и ему в 3 часа ночи запипикает мое приложение.
0
Лучшие ответы (1)
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
29.09.2014, 11:21
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Создать нотификацию, и не отображать ее ночью (Программирование Android):

Перевод арифметических выражений в обратную польскую нотификацию - C (СИ)
Здравствуйте, извините что обращаюсь, но больше некуда. Пробовал поискать решение в интернете, испробовал разные идеи, но не получается...

Приложение, позволяющее группой флажков отображать или не отображать элементы управления в окне прило - Visual Basic
Добрый вечер! Скажите, пожалуйста, как исправить код, чтобы элементы, при нажатии на флажок появлялись? И ещё почему-то не исчезает...

Создать представление которое будет отображать невыданные книги - Oracle
Хочу создать представление которое будет отображать не выданные книги!!! В данном запросе выводится пустая таблица! не могу понять в чем...

Как в DataGridView создать столбец, который будет отображать номер строки - C#
как в DataGridView создать столбец, который будет отображать номер строки?? При этом данные верно должны отображаться при...

Компьютер ночью выходит из спящего режима - Windows 10
Всем день добрый. Уже достала меня эта проблема. Сам по себе ПК выходит из спящего режима ночью, стоит Windows 10, до этого была 7, такой...

Компьютер включается сам по себе,ночью - Windows 7
Добрый день,или вечер всем обитателям данного форума. Возможно модераторы посчитают,что я не туда забрел,и создал не в той ветке тему,за...

6
YuraAAA
1576 / 1317 / 271
Регистрация: 25.10.2009
Сообщений: 3,438
Записей в блоге: 2
29.09.2014, 11:31 #2
kpoxaa, задача в том, чтобы оно не запикало ночью вообще, или чтобы была отложена до утра?
0
kpoxaa
72 / 33 / 1
Регистрация: 03.08.2012
Сообщений: 447
29.09.2014, 11:38  [ТС] #3
Я думаю оба варианта.

При создании нотификации я создаю переменную отвечающую за время старта таким образом : беру текущее время и прибалвяю к нему 7 дней. Это получается допустим - 28.09.2014 14-00. Но если получится 07-00 я могу доматать время до 12-00. Тут вроде бы все просто. Может быть этот вариант мне и подойдет?
0
YuraAAA
1576 / 1317 / 271
Регистрация: 25.10.2009
Сообщений: 3,438
Записей в блоге: 2
29.09.2014, 11:39 #4
kpoxaa, как Вы запускаете её через 7 дней? Это AlarmManager? Где Вы её храните? БД?
0
kpoxaa
72 / 33 / 1
Регистрация: 03.08.2012
Сообщений: 447
29.09.2014, 11:44  [ТС] #5
Вызываю метод:
Java
1
2
3
4
5
6
7
8
9
10
11
public void CreateWeekDateTimeNotification(String text, long delay)
    {
        
        AlarmManager am             = (AlarmManager) mActivity.getSystemService(Context.ALARM_SERVICE);
        Intent intent               = new Intent((Context)mActivity, WeekDateNotification.class);
        intent.putExtra(MESSAGE_EXTRA, text);
        PendingIntent pendingIntent;
        pendingIntent               = PendingIntent.getBroadcast((Context)mActivity, n_WeekDate, intent, PendingIntent.FLAG_CANCEL_CURRENT);
        am.cancel(pendingIntent);
        am.set(AlarmManager.RTC_WAKEUP, delay, pendingIntent);
    }
Свой ресивер:
public class WeekDateNotification extends BroadcastReceiver

А в ресивере:

Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
@Override
    public void onReceive(Context context, Intent intent) 
    {
        NotificationManager nm      = (NotificationManager) context.getSystemService(Context.NOTIFICATION_SERVICE);
        String appName              = context.getString(R.string.app_name);
        String message              = intent.getExtras().getString(LocalNotificationsManager.MESSAGE_EXTRA);
        Notification notification   = new Notification(R.drawable.icon, message, System.currentTimeMillis());
        // Интент для активити, которую мы хотим запускать при нажатии на уведомление
        Intent intentTL             = new Intent(context, Flight.class);
        
        intentTL.putExtra("StartFromLocalNotification", "LAUNCH_GAME_FROM_LOCAL_NOTIFICATION_DATE_WEEK");
        
        notification.setLatestEventInfo(context, appName, message, PendingIntent.getActivity(context, LocalNotificationsManager.n_WeekDate, intentTL, PendingIntent.FLAG_CANCEL_CURRENT));
        notification.flags = Notification.DEFAULT_LIGHTS | Notification.FLAG_AUTO_CANCEL;
        nm.notify(LocalNotificationsManager.n_WeekDate, notification);
    }
0
YuraAAA
1576 / 1317 / 271
Регистрация: 25.10.2009
Сообщений: 3,438
Записей в блоге: 2
29.09.2014, 11:57 #6
Лучший ответ Сообщение было отмечено автором темы, экспертом или модератором как ответ
kpoxaa,

Проверка ночи:

Java
1
2
3
4
5
public static boolean isNight() {
        Calendar cal = Calendar.getInstance();
        int hour = cal.get(Calendar.HOUR_OF_DAY);
        return hour < 6 || hour > 18;
    }
В onReceive просто проверяем,
Java
1
if (isNight()) return;
Это если надо просто проигнорировать.

Если надо её отправить утром, то придётся ещё раз её запланировать (CreateWeekDateTimeNotification) с нужным delay.
1
kpoxaa
72 / 33 / 1
Регистрация: 03.08.2012
Сообщений: 447
29.09.2014, 12:26  [ТС] #7
Спасибо!
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
29.09.2014, 12:26
Привет! Вот еще темы с ответами:

определить порядок цветов ночью по прошествии K дней. - Delphi
В рождественский вечер на окошке стояло три цветочка, слева на право: герань, крокус и фиалка. Каждое утро Маша вытирала окошко и меняла...

Не работает клавиатура с мышкой после простоя ПК ночью - Windows 10
Добрый день! не знаю, связано это с windows 10 или железом) но проблема такая: Раньше не замечал такой проблемы. Оставляю пк...

Ищу программу учета трафика с возможностью не считать трафик ночью - Софт
Добрый день! В связи с изменением тарифного плана у моего провайдера - ищу программу учета трафика с возможностью расписания учета, т.е....

Дано два массива одинаковой длины по 10 элементов. Создать третий массив который будет отображать сумму первых двух массивов(для одномерного и двумер - C#
Дано два массива одинаковой длины по 10 элементов. Создать третий массив который будет отображать сумму первых двух массивов(для...


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

Или воспользуйтесь поиском по форуму:
7
Yandex
Объявления
29.09.2014, 12:26
Ответ Создать тему
Опции темы

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