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

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

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

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

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

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

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

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

Отображать в textView текст из файла txt - Программирование Android
нужно отображать в textView текст из файла txt. может кто-то рассказать принцип или дать ссылку для ознакомления?

CalendarView - отображать Месяц/Неделя/День - Программирование Android
Здравствуйте. Интересует каким образом можно используя CalendarView, стандартными способами отобразить календарь ввиде...

Отображать рекламу в своем приложении от admod - Программирование Android
Здравствуйте, все сделал как в описании гугл по admod, настроил в admod рекламу и код ввел, но что то не отображает ничего, может есть кто...

Не отображать SplashScreen при смене ориентации экрана - Программирование Android
Не могу понять как сделать чтобы сплэш не появлялся снова при смене ориентации экрана? + подскажите, почему при горизонтальной...

Как не отображать в GridView пустоту между ячейками? - Программирование Android
Здравствуйте. Как не отображать в GridView пустоту между ячейками? Вроде по горизонтали все нормально, а по вертикали небольшие отступы...

В listView в item отображать картинки одинакового размера - Программирование Android
загружаю картинки с сервера, они разных размеров. Скажите как в listView в item показывать картинки одинакового размера (можно обрезать,...

Eclipse перестал отображать файлы Strings разных языков одновременно - Программирование Android
Добрый день! Помогите разобраться. Перешел на новый Eclipse и теперь в моем проекте при попытке открыть файл strings.xml открывается...

После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
YuraAAA
1567 / 1309 / 269
Регистрация: 25.10.2009
Сообщений: 3,424
Записей в блоге: 2
29.09.2014, 11:31     Создать нотификацию, и не отображать ее ночью #2
kpoxaa, задача в том, чтобы оно не запикало ночью вообще, или чтобы была отложена до утра?
kpoxaa
72 / 33 / 1
Регистрация: 03.08.2012
Сообщений: 446
29.09.2014, 11:38  [ТС]     Создать нотификацию, и не отображать ее ночью #3
Я думаю оба варианта.

При создании нотификации я создаю переменную отвечающую за время старта таким образом : беру текущее время и прибалвяю к нему 7 дней. Это получается допустим - 28.09.2014 14-00. Но если получится 07-00 я могу доматать время до 12-00. Тут вроде бы все просто. Может быть этот вариант мне и подойдет?
YuraAAA
1567 / 1309 / 269
Регистрация: 25.10.2009
Сообщений: 3,424
Записей в блоге: 2
29.09.2014, 11:39     Создать нотификацию, и не отображать ее ночью #4
kpoxaa, как Вы запускаете её через 7 дней? Это AlarmManager? Где Вы её храните? БД?
kpoxaa
72 / 33 / 1
Регистрация: 03.08.2012
Сообщений: 446
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);
    }
YuraAAA
1567 / 1309 / 269
Регистрация: 25.10.2009
Сообщений: 3,424
Записей в блоге: 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.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
29.09.2014, 12:26     Создать нотификацию, и не отображать ее ночью
Еще ссылки по теме:

При вводе слов из Википедии брать значение этого слова и отображать в TextView - Программирование Android
Всем привет создаю программу , и хочу чтобы при вводе слов из википедии бралось значение этого слова и отображалось в TextView

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

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

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

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


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

Или воспользуйтесь поиском по форуму:
kpoxaa
72 / 33 / 1
Регистрация: 03.08.2012
Сообщений: 446
29.09.2014, 12:26  [ТС]     Создать нотификацию, и не отображать ее ночью #7
Спасибо!
Yandex
Объявления
29.09.2014, 12:26     Создать нотификацию, и не отображать ее ночью
Ответ Создать тему
Опции темы

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