@IvanOne

Как обновлять базу в бэкграунде?

Привет! я недавно начал изучать android, написал свое мини приложение и сейчас стоит задача синхронизации с сервером через http, то есть алгоритм такой,я создаю запись или обновляю ее непосредственно из приложения, пытаюсь запустить синхронизацию, но в отдельном потоке если доступа к сети нет или перебои с сервером то ничего не делать, если все ок то отдать данные может быть получить новые и записать в бд. При этом эту же задачу по синхронизации выполнять фоново по таймеру(например раз в 20 минут), даже если приложение закрыто. Вот что интересует:
1. Какие классы использовать? Смотрел примеры у всех все по разному
2. Если пользователь обращается к бд и в этот момент происходит синхронизация в отдельном потоке, то что будет? ошибка?
Я могу ошибаться и выбрать не те слова, поправьте меня если что, посоветуйте как можно сделать такую задачу.
  • Вопрос задан
  • 165 просмотров
Решения вопроса 1
gadfi
@gadfi
https://gamega.org
При этом эту же задачу по синхронизации выполнять фоново по таймеру(например раз в 20 минут), даже если приложение закрыто.

Очень плохая идея, шлите gcm если есть обновления

1. Какие классы использовать? Смотрел примеры у всех все по разному

Что то для асинхроности, можно просто IntentService
Мне нравится использовать retrofit +gson для rest запросов
Для работы с бд ContentProvider - да у него отвратительный api но работает очень стабильно

2. Если пользователь обращается к бд и в этот момент происходит синхронизация в отдельном потоке, то что будет? ошибка?


sqlite работает по принципу много читают один пишет, но это решаемо дополнительными соединениями к бд
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы