Я должен начать упоминать, что я совершенно новичок в Android, я только что закончил читать краткую, вводную книгу, и теперь мне нужно реализовать свое первое приложение. Это приложение будет использоваться для выполнения заказов. Среди всех данных, которые я собираюсь хранить в локальном db, наиболее важны две таблицы: клиенты и статьи, являющиеся последней самой большой из всех таблиц (aprox 20000 records) Один из основных процессов в моем приложении, извлекает все данные, которые мое приложение должно работать в автономном режиме, когда пользователь нажимает кнопку, которая запускает ежедневные операции на устройстве.
Ну, процесс состоит из следующих шагов:
а. Прочтите сервис для восстановления данных клиентов
б. Разберите ответ на объекты Json
с. Вставьте этих клиентов в таблицу клиентов
д. Прочтите резервное обслуживание для получения данных статей
е. Разберите ответ на объекты Json
е. Вставьте эти статьи в таблицу статей.
Это то, что я планировал сделать:
- Напишите класс-помощник, который обрабатывает все HTTP-запросы GET. Затем вызовите этот класс всякий раз, когда мне нужно загрузить все данные Customers и Articles.
- Поскольку весь этот процесс может занять много времени, мне нужно сделать это в фоновом режиме. Поэтому, основываясь на некоторых предложениях, я собираюсь поместить весь этот код в Bound Service.
- Пока вся эта длительная обработка происходит в фоновом режиме, мне нужно будет показать какой-то индикатор (ProgressDialog). Именно по этой причине я решил использовать Bound Service
Хотя я думаю, что у меня есть общее представление о том, как делать большую часть этой вещи отдельно, я думаю, что объединение всех - совсем другая история.
Итак, вот те вопросы, которые у меня есть, что мне нужно собрать головоломки:
- Как вы думаете, порядок, в котором я выполняю все 6 шагов описанного процесса, является правильным/эффективным? Если бы вам пришлось внести некоторые изменения, что бы вы изменили?
- Если действие, которое запустило службу, явно отменено или скрыто другим действием, служба должна иметь возможность сообщить пользователю, что процесс завершен. Как я мог реализовать это?
- Возможно ли/рекомендуется писать в SQLite DB внутри службы? Это то же самое, что когда я делаю это в рамках деятельности?
- В J2ME я сделал что-то подобное, и когда я помещал что-то вроде 6 шагов, о которых я говорил выше, все они выполняются последовательно, то есть один за другим. Это то же самое в Android?
Надеюсь, я не задаю слишком много вопросов. Я просто собрал их, потому что они все связаны.
В основном в этом вопросе я не прошу работать с рабочим кодом (хотя было бы хорошо, если бы вы могли предоставить примерный код). Я действительно нахожусь в некоторых предложениях, некоторые рекомендации. Что-то вроде "Эй, я думаю, это может помочь вам с номером 3" или "Вы можете найти эту статью полезной", "Я думаю, вам лучше использовать это вместо этого". Такого рода вещи.
Я решил приехать к вам, потому что вы эксперты, и мне действительно нужно, чтобы кто-то поставил меня в правильном направлении.
Большое спасибо.
P.S. Пожалуйста, не закрывайте этот вопрос, если вы думаете, что мне нужно что-то изменить, просто дайте мне знать, и я это сделаю.