Я разрабатываю приложение для Android, которое должно выполнить следующие шаги:
- пользователь нажимает кнопку или указывает на "синхронизировать данные".
- Процесс синхронизации будет использовать веб-службы REST для перемещения данных на сервер и с сервера.
- данные будут храниться локально в базе данных sqlite.
- процесс синхронизации должен предоставлять обновления статуса/сообщения для пользовательского интерфейса
- пользователю не следует позволять блуждать по другим частям приложения и выполнять больше работы во время процесса синхронизации.
При первом запуске процесса синхронизации это может занять 10-20 минут. После первоначальной синхронизации меньше данных будет передано и сохранено и Я ожидаю, что процесс займет 1-2 минуты или меньше.
Я много читал об андроиде AsyncTask
и различных примерах использования Сервиса... Но я не совсем понимаю соображения дизайна и компромиссы выбора одного проекта над другим. В настоящее время у меня есть демонстрационный проект с использованием AsyncTask. После просмотра (большинство из них) Разработка клиентских приложений REST для Android: http://code.google.com/events/io/2010/sessions/developing-RESTful-android-apps.html# Мне оставлено смутное описание шаблонов проектирования, описанных здесь,
сложный, возможно, потому, что я просто "не понимаю".
Я исхожу из фона java, spring, веб-приложений и настольных приложений. Мышление и проектирование с точки зрения карманного устройства для меня совершенно новое. (Что происходит, когда макет экрана изменяется? Что происходит, когда телефон звонит, когда я запускаю синхронизацию?) Если сделать 2 шага назад, если начальная синхронизация будет таким длительным процессом, есть ли лучший способ для мне подумать о проблеме- > решении, пользовательском опыте, ожиданиях пользователей приложения, работающего на телефоне?
Хотелось бы услышать от более опытных разработчиков Android, которые уже боролись с этими вопросами.