Шаблон пользовательского интерфейса Android для сохранения частичной информации в базу данных
Я разрабатываю простое приложение расходов, которое отслеживает расходы, которые я делаю в месяц. Расходы имеют название, сумму, а также категорию. Можно добавлять / удалять категории по желанию. Я храню категории и расходы в базе данных.
Прямо сейчас я раскрываю функциональность добавления категорий, сохраняя editText и кнопку "Добавить категорию" в действии "Добавить расходы".
Итак, для пользовательского сценария, например, когда пользователь ничего не вводит о расходах, а просто добавляет категорию, я хочу, чтобы она была сохранена в базе данных.
Сохранение категории может быть немедленно выполнено в базе данных с помощью AsyncTask для вызова помощника базы данных для вставки значения в таблицу.
В то же время я запутался в том, что мне нужно добавить progressDialog, чтобы сообщить пользователю, что я что-то сохраняю, или позволить ему заполнить информацию в других полях.
Что такое UI-шаблон или обычно используемые стратегии при сохранении частичной информации о записи в базу данных. Кроме того, я должен просто перейти к другой деятельности, если добавление категории в базу данных приводит к ошибке?
Кроме того, побочный вопрос, должен ли я поместить кнопку "Добавить категории" в действие, отличное от действия "Добавить расходы"?
1 ответ
С http://developer.android.com/guide/practices/design/responsiveness.html:
Потенциально длительные операции, такие как... операции с базой данных... должны выполняться в дочернем потоке (или, в случае операций с базами данных, через асинхронный запрос). Однако это не означает, что ваш основной поток должен блокироваться в ожидании завершения дочернего потока...
Поскольку исходная ситуация этого поста была описана, диалог прогресса, вероятно, не нужен. Возможно, рядом с сохраняемой записью может быть небольшой визуальный маркер, указывающий на состояние сохранения (это может быть "новый", "сохранение", "сохранен", "проблема / ошибка"). В случае ошибки при сохранении, если для пользователя, вероятно, важно сохранить запись, я определенно сделаю для пользователей очевидным, что возникла проблема, и предоставлю им шаги по исправлению ситуации.
Также обратите внимание, что во время хотя бы одного недавнего сеанса Google I/O 2011 (видео для которого можно найти по адресу http://www.youtube.com/googledevelopers), инженеры пользовательского интерфейса Android, включая парня, который создал официальное приложение Twitter Рекомендуется ограничить пользовательский интерфейс блокировки, например, с помощью диалоговых окон выполнения, так как их чрезмерное использование может привести к неоптимальному взаимодействию с пользователем, из-за чего приложение перестает отвечать на запросы и медленно работает.