С Новым годом! Форум программистов, компьютерный форум, киберфорум
Наши страницы

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

Войти
Регистрация
Восстановить пароль
 
Vladimir93
43 / 43 / 5
Регистрация: 28.06.2015
Сообщений: 175
#1

Обновление данных один раз в сутки - Программирование Android

28.06.2015, 12:32. Просмотров 572. Ответов 11
Метки нет (Все метки)

Здравствуйте, участники форума. Чувствую что объяснить будет не просто, но я буду стараться.
Суть - конвертер валют, загружает курсы с сайта ЦБ РФ.
Курсы обновляться в 11-30 - 12-00, каждый день.
Требуется - загружать оные только один раз, в сутки.
Т.е. запускаем приложение, первым делом пробуем загрузить курсы с сайта. Тут все просто грузим, сохраняем в SharedPreferences.
И при последующих запусках уже не лезем на сайт а берем из - SharedPreferences.
А вот дальше, с обновлением, у меня возникают затруднения.
Я могу сделать так, что бы автоматически загружать новые курсы при наступлении новых суток (сверяем предыдущую дату и текущую). Но это не подходит, ибо 9 часов утра, это уже новые сутки, а курсы на сайте еще старые.
Т.е. нужно заморачваться с часами, но и тут проблема. Как установиться это самое время в часах?
Если ставить конкретное, то если пользователь не включит приложение допустим с 10 до 12 он не загрузит новые курсы. Если ставить до обеда, или после, то все это время приложение лезет в сеть и пробует обновиться. Теряем смысл сохранения курсов.
Сверять курсы, тоже бесполезно, ибо требуется загрузка актуальных. Опять же теряется смысл сохранения.
Вроде как мог пояснил, знаю трудно бывает понят что пишут. Я буду статься пояснять по ходу обсуждения, если таковое возникнет.))
0
Лучшие ответы (1)
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
28.06.2015, 12:32
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Обновление данных один раз в сутки (Программирование Android):

Показать только один раз - Программирование Android
Подскажите, как можно показать заставку(это может быть изображение, или активность с imageView) только при первом запуске приложения??? При...

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

Как определить, платил ли пользователь хоть один раз? - Программирование Android
Как можно получить true или false, платил ли юзер хоть раз со своего аккаунта в мое приложение?

OnTouch MotionEvent в андроид выполняется только один раз - Программирование Android
Так вот сам вопрос: MotionEvent.ACTION_UP выполняется только первый раз, что при использовании if, что case. Кликаем по копке звук...

Загрузить данные один раз с MySQL таблицы в память приложения, и в дальнейшем использовать ее - Программирование Android
Всем добрый вечер, Есть ли возможность загрузить данные один раз с MYSQL таблицы в память приложения, и в дальнейшем использовать ее....

Как создать layout, который запускается один раз, при первом запуске приложения? - Программирование Android
Как создать layout, который запускается один раз, при первом запуске приложения? т.е. один раз запустилось и всё.

11
Rube
911 / 559 / 88
Регистрация: 13.02.2014
Сообщений: 2,071
28.06.2015, 20:19 #2
Ничо не понял, но отвечу. Делай сервис и AlarmManager. Сервис сам будет ходить на сайт и качать курсы. Частоту обновления можно установить любую.
0
lvlkoo
.NET C#,ASP.NET MVC
384 / 340 / 117
Регистрация: 16.10.2010
Сообщений: 1,445
Завершенные тесты: 2
28.06.2015, 22:04 #3
Ну подождите. Вы залезли на сайт, выкачали курсы, записали дату выгрузги. При следующем запуске проверяете, что новый день и время больше 12.00. Или у вас виджет?
0
Vladimir93
43 / 43 / 5
Регистрация: 28.06.2015
Сообщений: 175
30.06.2015, 09:50  [ТС] #4
Цитата Сообщение от Rube Посмотреть сообщение
Делай сервис и AlarmManager. Сервис сам будет ходить на сайт и качать курсы. Частоту обновления можно установить любую.
Теряем смысл сохранения, в том то и суть - не грузить постоянно данные из сети, задача - обновление 1 раз в сутки, причем без предварительной загрузки. А сервис, это еще и расход ресурсов, для простого конвертера - непростительная роскошь.
Цитата Сообщение от lvlkoo Посмотреть сообщение
При следующем запуске проверяете, что новый день и время больше 12.00.
Именно так я и делал, но возникает проблема, приложение после 12 начинает обновляться при каждом включении.
Нужно еще какое то дополнительное условие. Т.е. если приложение запущено после 12 нужно проверить, обновлено ли оно, и если да, то больше не обновлять, а если нет - обновить. Вот тут у меня и проблема. Не знаю как это реализовать.
0
lvlkoo
.NET C#,ASP.NET MVC
384 / 340 / 117
Регистрация: 16.10.2010
Сообщений: 1,445
Завершенные тесты: 2
30.06.2015, 10:06 #5
Лучший ответ Сообщение было отмечено автором темы, экспертом или модератором как ответ
Цитата Сообщение от Vladimir93 Посмотреть сообщение
Именно так я и делал, но возникает проблема, приложение после 12 начинает обновляться при каждом включении.
Нужно еще какое то дополнительное условие. Т.е. если приложение запущено после 12 нужно проверить, обновлено ли оно, и если да, то больше не обновлять, а если нет - обновить. Вот тут у меня и проблема. Не знаю как это реализовать.
Ключевая фраза в моем посте выше - "вы записали дату выгрузки". К примеру это 29.06.2015
Соотвественно запуская приложение 30.06.2015 - проверяете на то что наступил новый день, затем проверяете на то, что уже 12:00 - если условие истина тогда делаете обновление, соостветсвенно после этого обновления опять записываете дату (30.06.2015). При следующем запуске приложение 30 числа условие выполняться не будет! Уловили мысль?
1
Vladimir93
43 / 43 / 5
Регистрация: 28.06.2015
Сообщений: 175
30.06.2015, 12:02  [ТС] #6
Дааа. Что то стало проясняться, но еще не до конца. Попробую.
0
Rube
911 / 559 / 88
Регистрация: 13.02.2014
Сообщений: 2,071
30.06.2015, 13:14 #7
Цитата Сообщение от Vladimir93 Посмотреть сообщение
А сервис, это еще и расход ресурсов, для простого конвертера - непростительная роскошь.
Какой расход ресурсов, вы о чем? Сервис запускается только для загрузки данных, отработал - отключается. Запускаем его из AlarmManager, тоже никаких расходов. Курс обновился - вылез Notification, пользователь глянул - о, какая прога, сама курсы качает, молодец какой Vladimir93!
А так - просто поделка.
0
Vladimir93
43 / 43 / 5
Регистрация: 28.06.2015
Сообщений: 175
01.07.2015, 09:58  [ТС] #8
Rube,А когда запускаем AlarmManager? Вот к примеру запускаем AlarmManager, а в это время сети нет, и нет возможности обновиться. Что делать?
0
YuraAAA
1577 / 1318 / 271
Регистрация: 25.10.2009
Сообщений: 3,438
Записей в блоге: 2
01.07.2015, 11:01 #9
Vladimir93,
Цитата Сообщение от Vladimir93 Посмотреть сообщение
а в это время сети нет
Иметь ресивер на получение изменения состояния сети
0
Vladimir93
43 / 43 / 5
Регистрация: 28.06.2015
Сообщений: 175
01.07.2015, 11:50  [ТС] #10
А как потом AlarmManager запустить? Время то ушло. Другими словами AlarmManager - сработал в назначенное время, но обновить не получилось.
0
YuraAAA
1577 / 1318 / 271
Регистрация: 25.10.2009
Сообщений: 3,438
Записей в блоге: 2
01.07.2015, 11:55 #11
Vladimir93, при апдейте данных записывать в SharedPreferences время текущее.
При появлении интернета (событие в броадкасте) смотреть в эту дату. Если больше суток, то апдейтить.
1
Rube
911 / 559 / 88
Регистрация: 13.02.2014
Сообщений: 2,071
01.07.2015, 13:09 #12
Я записываю время следующего запуска.
0
01.07.2015, 13:09
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
01.07.2015, 13:09
Привет! Вот еще темы с ответами:

Обновление данных - Программирование Android
Добрый день. Еще такая проблема возникла. Есть форма где нужно редактировать информацию, ввел нужные коррективы и нажал кнопку...

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

Обновление данных адаптера - Программирование Android
Здравствуйте. Помогите, кто сталкивался. Есть список, где в зависимости от значения свойства отображенного объекта подставляется лейаут: ...

Обновление данных в activity - Программирование Android
Всем доброй ночи! Как обновить данные в активити при возврате из диалога или из другой активити, т.е. когда фокус возвращается на...


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

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

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