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

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

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

Локальная система оповещения пользователя - Программирование Android

27.08.2015, 18:28. Просмотров 270. Ответов 3
Метки нет (Все метки)

Коллеги, доброго времени суток!
Необходим совет по разработке модуля, отвечающего за напоминания пользователю открывать моё приложение раз в месяц. Напоминания необходимо отображать в статус баре. Механизм напоминаний должен быть "локальным", т.е. без использования каких-либо событий со стороны сервера.
Собственно вопрос в том, как пошагово можно это всё сделать?

P.S. Заранее спасибо за помощь.
Лучшие ответы (1)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
27.08.2015, 18:28     Локальная система оповещения пользователя
Посмотрите здесь:

Логика для SMS оповещения - Программирование Android
Помогите кое что прояснить. Допустим хочу создать программу которая как только приходит SMS выводит на экран окно "Main" с сообщением. ...

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

Локальная директория приложения - Программирование Android
Вопрос, собственно говоря, такой: Имеется приложение, где находится его директория, как например в Windows, приложение лежит в Program...

Wi -Fi только локальная сеть - Программирование Android
Здравствуйте у меня след проблема . Подключаюсь к роутеру через вайфай видит сеть имя которой прописан в настройке роутера . подключается к...

Локальная база данных в Андроид приложениях - Программирование Android
Здравствуйте программисты. У меня при создании возникла проблема с хранением данных для приложения. Вот мой вопрос: Возможно ли создавать...

Локальная база данных в JSON. Возможно ли сразу добавить её в файлы приложения - Программирование Android
Есть база данных в формате JSON. Возможно ли сразу добавить её в файлы приложения и использовать её как локальную базу?

Система оповещения - Софт
Добрый день форумчане! Хочу спросить вас, если кто то знает/использует систему оповещения? Допустим каждый пользователь заходит под...

Оповещения для пользователя на мобильник - PHP
Есть мобильный сайт с линком на десктоп мобильника. Нужно чтобы человек посмотрел и тут же увидел на иконке что есть 3 новых сообщения для...

Принтер — локальная система печати недоступна - Windows 7
Локальная система подпечати недоступна, возможно ли это зависит от домена.... Просто старый комп был с доменом, а новый комп без домена...

Узел службы : локальная система грузит ЦП - Windows 10
После какого-то обновления около 3-4 недель назад появился этот процесс. ...

Узел службы: локальная система грузит ЦП на треть - Windows 10
Подскажите, пожалуйста, как можно узнать в чем именно проблема?

Узел службы: локальная система грузит процессор - Windows 10
Всем привет, у меня такая проблема. На ноутбуке с Win 10 с сегодняшнего дня процесс под названием "Узел службы: локальная система"...


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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
YuraAAA
1565 / 1307 / 269
Регистрация: 25.10.2009
Сообщений: 3,424
Записей в блоге: 2
27.08.2015, 20:55     Локальная система оповещения пользователя #2
Сообщение было отмечено автором темы, экспертом или модератором как ответ
Rembo88, AlarmManager
Rembo88
0 / 0 / 0
Регистрация: 05.10.2013
Сообщений: 39
28.08.2015, 14:06  [ТС]     Локальная система оповещения пользователя #3
Пытаюсь использовать Alarm Manager, нотификации отображаются, но только при запуске приложения. Как только приложение закрываю оповещения перестают приходить.
Можете подсказать,что делаю не так?

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
41
42
43
/** Приёмник широковещательных сообщений */
public class RemindReceiver extends BroadcastReceiver {
 
    /** Класс-ctivity,который будет запускаться при нажатии на оповещение */
    private Class<?> activityClass;
 
    public RemindReceiver(Class<?> activityClass) {
 
        this.activityClass = activityClass;
    }
 
    @Override
    public void onReceive(Context context, Intent intent) {
 
        // Менеджер прослушивающий широковещательные сообщения
        NotificationManager notifyManager = (NotificationManager) context.getSystemService(Context.NOTIFICATION_SERVICE);
        // Создаём объект, формирующий оповещения
        Notification notification = new Notification(R.mipmap.ic_launcher, "Посмотрите Ваши цели", System.currentTimeMillis());
        // Интент для активити, которая будет запущена при нажатии на уведомление
        Intent intentTL = new Intent(context, activityClass);
        notification.setLatestEventInfo(context, "Напоминание", "Посмотрите Ваши цели",
                PendingIntent.getActivity(context, 0, intentTL, PendingIntent.FLAG_CANCEL_CURRENT));
        notification.flags = Notification.DEFAULT_LIGHTS | Notification.FLAG_AUTO_CANCEL;
        notifyManager.notify(1, notification);
        // Менеджер управления службой Alarm Service
        AlarmManager alarmManager = (AlarmManager) context.getSystemService(Context.ALARM_SERVICE);
        // Устанавливаем действие, выполняемое при запуске оповещения
        PendingIntent pendingIntent = PendingIntent.getBroadcast(context, 0, intent, PendingIntent.FLAG_CANCEL_CURRENT);
        // Устанавливаем временной интервал между оповещениями
        alarmManager.setRepeating(AlarmManager.ELAPSED_REALTIME_WAKEUP, System.currentTimeMillis(), 1000 * 5, pendingIntent);
    }
 
    public void setRemind(Context context) {
 
        // Менеджер управления службой Alarm Service
        AlarmManager alarmManager = (AlarmManager)context.getSystemService(Context.ALARM_SERVICE);
        // Устанавливаем действие, выполняемое при запуске оповещения
        Intent intent = new Intent(context, RemindReceiver.class);
        PendingIntent pendingIntent = PendingIntent.getBroadcast(context, 0, intent, 0);
        // Устанавливаем временной интервал между оповещениями
        alarmManager.setRepeating(AlarmManager.ELAPSED_REALTIME_WAKEUP, System.currentTimeMillis(), 1000 * 5 , pendingIntent);
    }
}
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
public class PersonListFragment extends Fragment {
 
    private RemindReceiver remindReceiver;
 
    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
 
        View rootView = inflater.inflate(R.layout.person_list_fragment_layout, container, false);
 
        Button nextButton = (Button) rootView.findViewById(R.id.next_button);
        ListView personListView = (ListView) rootView.findViewById(R.id.name_list_view);
        List<Person> personList = PersonListGenerator.generate();
 
        PersonListAdapter adapter = new PersonListAdapter(getActivity(), personList);
        personListView.setAdapter(adapter);
 
        Context context = getActivity().getApplicationContext();
        remindReceiver = new RemindReceiver(PersonListActivity.class);
        remindReceiver.setRemind(context);
        remindReceiver.onReceive(getActivity(), new Intent());
 
        nextButton.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
 
                Intent intent = new Intent(getActivity(), ExpandablePersonListActivity.class);
                startActivity(intent);
            }
        });
 
        return rootView;
    }
}
REALIST07
Автор FAQ
Автор FAQ
175 / 175 / 13
Регистрация: 11.06.2010
Сообщений: 932
29.08.2015, 14:33     Локальная система оповещения пользователя #4
Надо в автозагрузку поставить в onBootReciever, сохранить дату первого запуска и при каждой перезагрузке смотреть прошло ли нужное количество времени или нет?

Добавлено через 1 минуту
Если прошло выполнять ваш код , если нет отсчитать дату следующего запуска.

Добавлено через 6 минут
Если вы хотите постоянную проверку вам нужен сервис, но в вашем случае это нерационально, перезагрузка смартфона это то что вам нужно.
Yandex
Объявления
29.08.2015, 14:33     Локальная система оповещения пользователя
Ответ Создать тему
Опции темы

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