Android: обрабатывать ошибки при чтении из локальной базы данных? - PullRequest
1 голос
/ 17 апреля 2019

Я хочу прочитать записи из локальной базы данных и показать их в виде списка.

В случае отсутствия записей я показываю пустой пользовательский интерфейс состояния.

Мне интересноесли мне нужно добавить состояние ошибки пользовательского интерфейса.Может ли быть недоступна локальная база данных или могут возникнуть ошибки чтения?(Ошибки программирования исключены - в этих случаях я хочу, чтобы приложение аварийно завершало работу, чтобы быстро об этом узнать.)

Уточнение : я мог бы упомянуть слишком много UI в своем вопросе.Меня интересует только то, какие ошибки базы данных могут возникать при чтении из локальной базы данных, которые не вызваны ошибками программирования.

1 Ответ

1 голос
/ 17 апреля 2019

ListView будет пустым, если источник ListView (Cursor или Array) пуст (а не null, что приведет к исключению нулевого указателя). Фактически в большинстве случаев ListView изначально будет пустым, так как вы обычно вызываете setContentView, который применяет макет, который обычно включает ListView (который на этом этапе не имеет адаптера и, следовательно, ничего не отображает). Затем вы получите ListView, настроите адаптер и затем установите ListView с адаптером, что приведет к тому, что элементы будут перечислены (если есть).

База данных SQLite, однажды созданная, довольно солидна, и вероятность ошибок чтения / записи довольно мала, и я уверен, что возникнет исключение.

Наиболее частые ошибки чтения, как таковые, возникают при копировании ранее существующей базы данных, и обычно причиной является каталог, в который помещен файл базы данных, не существует.

  • База данных создается вне приложения и, как правило, помещается в папку ресурсов, ресурс (который доступен только для чтения и также сжимается) затем копируется туда, где он будет полностью доступен (обычно в каталог баз данных данных приложения ( data / data / имя_пакета / database / the_database_file )
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...