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

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

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

Обновление приложения и AlarmManager - Android

31.05.2016, 10:09. Просмотров 324. Ответов 6
Метки нет (Все метки)

Доброе утро, уважаемые форумчане!
Хочу сделать приложение – будильник. С помощью AlarmManager запускаю приложение в нужное время, все работает.
Но вот незадача, в момент обновления приложения через android studio все запланированные события убиваются… В принципе логично, для планшета это новое приложение. Старое удалилось, а значит, удалились и все события AlarmManager.

Вопрос: если я залью приложение на google play, пользователь набросает себе событий, а в один прекрасный день я обновлю приложение, все запланированные события пользователя тоже аннулируются?
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
shavuz
99 / 105 / 19
Регистрация: 29.01.2014
Сообщений: 527
31.05.2016, 10:56     Обновление приложения и AlarmManager #2
Добрый день. более того возможно что по какой то причине пользователь сам переустановит приложение или на каком то определенном аппарате приложение упадет. тогда тоже все сотрется. я думаю что события должны записываться в Shared preferences, при добавлении события они будут обновляться а при апдейте или переустановке в в onCreate будут заливаться из памяти. могу посоветовать для хранения данных в Shared preferences пользоваться TinyDb которая позволяет хранить массивы и листы

Добавлено через 7 минут
извените , не правельно понял вопрос
обновление:
При переустановки происходит clean cash приложения. если делать апдейт с плей маркета то это не произойдет. но, для того чтобы 100% события запланированые пользователем сохранялись, нужно использовать один из двух варриантов 1) Записывать события на файл в удобном вам формате и доставать их оттуда 2) держать события на сервере, думаю этот варриант менее подходит для такого приложеня.
Лично я бы использовал Shared preferences для хранения данных в вашем случае. если пользователь удаляет приложение то он делает это скорее всего сознательно и понимает что события удалятся.
Хорошего дня
Smurfix
1 / 1 / 0
Регистрация: 21.02.2016
Сообщений: 27
31.05.2016, 12:35  [ТС]     Обновление приложения и AlarmManager #3
shavuz, спасибо!
Получается нужно постоянно проверять не слетели ли события

Цитата Сообщение от shavuz Посмотреть сообщение
один из двух вариантов
1) Записывать события на файл в удобном вам формате и доставать их оттуда
Храню их в БД.

Придется проверять включены ли они при каждом запуске программы.
shavuz
99 / 105 / 19
Регистрация: 29.01.2014
Сообщений: 527
31.05.2016, 12:39     Обновление приложения и AlarmManager #4
ну да. нужна проверка, просто создаете обьект который если пустой то тянете с файла если нет то значит есть события
Smurfix
1 / 1 / 0
Регистрация: 21.02.2016
Сообщений: 27
31.05.2016, 13:02  [ТС]     Обновление приложения и AlarmManager #5
С объектом нужно подумать...
Я думал в onDestroy прогнать в цикле обновление всех активных сообытий. Или как-то проверять их наличие через флаг FLAG_NO_CREATE при создании PendingIntent
shavuz
99 / 105 / 19
Регистрация: 29.01.2014
Сообщений: 527
31.05.2016, 13:12     Обновление приложения и AlarmManager #6
вы пользуетесь нон стики сервис?
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
08.06.2016, 19:05     Обновление приложения и AlarmManager
Еще ссылки по теме:

Android Обновление приложения из google play
AlarmManager не работает после закрытия приложения Android
Android Автоматическое обновление приложения
Обновление приложения путём синхронизации с сервером Android
Android Автоматическое обновление приложения

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

Или воспользуйтесь поиском по форуму:
Smurfix
1 / 1 / 0
Регистрация: 21.02.2016
Сообщений: 27
08.06.2016, 19:05  [ТС]     Обновление приложения и AlarmManager #7
Цитата Сообщение от shavuz Посмотреть сообщение
вы пользуетесь нон стики сервис?
К сожалению с их работой знаком

В AlarmManager через set задаю событие.
Для проверки, не слетели ли события, использую:
Java
1
boolean alarmUp = (PendingIntent.getBroadcast(context, 0, alarm.createIntent(), PendingIntent.FLAG_NO_CREATE) != null);
если alarmUp == false, значит слетели...

Добавлено через 1 час 43 минуты
Цитата Сообщение от Smurfix Посмотреть сообщение
К сожалению с их работой знаком
В смысле, не знаком
Yandex
Объявления
08.06.2016, 19:05     Обновление приложения и AlarmManager
Ответ Создать тему
Опции темы

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