Подтвердить что ты не робот

Лучшая практика отображения сообщений об ошибках

Каков наилучший способ отображения сообщений об ошибках пользователю?

Предположим следующий сценарий (например, этот вопрос относится к общей проблеме, когда ошибка может возникать в сервисе, в потоке и т.д.):

  • Мы загружаем некоторые данные для некоторого экрана
  • Происходит ошибка (Интернет недоступен, исключение сервера, другие исключения...)

Как показать ошибку? Возможные решения:

  • Показать тосты - самый простой способ, но это не самый лучший (для многих ошибок мы увидим много тостов, даже если приложение работает в фоновом режиме)
  • Показывать ошибку где-то на экране (например, gmail показывает "Нет соединения" в нижней части списка и предлагает повторить попытку)

Каков ваш опыт? Как вы показываете ошибки пользователя? Есть ли какие-то руководства, объясняющие, что является лучшим способом?

4b9b3361

Ответ 1

Я использовал alertDialog.. ссылку Изображения. futher google it

Для пользователя Внимание.

enter image description here

для формы Текст редактирования проверки использует метод editText.setError("Your error message")

for form Validation edit

для интернет-соединения не удалось

enter image description here

для внутреннего подключения не удалось выполнить повтор.

enter image description here

Обновление 1

Для отображения информации о автоматическом завершении/сообщении мы используем Toast например, уведомить пользователя о том, что ваш Email was sent Successfully. Мы можем использовать Toast, как показано ниже

введите описание изображения здесь

Toast.makeText(контекст, "Сообщение отправлено успешно", продолжительность).show()

Примечание. Пользователь не может взаимодействовать с тостом по умолчанию, см. также Custom Toast Layout

Другой вариант - использовать новый Snackbar

введите описание изображения здесь

Надеюсь, это будет полезно

Ответ 2

Это зависит от приложения и того, что приложение сможет сделать, когда оно встретит это ошибка.

Два метода, которые Google предлагает в Руководстве по дизайну материалов для работы с этими типами сообщений:

Dialogs (в этом случае диалог оповещений):

Alert Dialog

и Snackbars:

Закусочная

Чтобы использовать ваш пример: некоторые данные запрашиваются с удаленного сервера, но из-за некоторой ошибки или исключения выборка завершается с ошибкой и данные не возвращаются.

В этот момент тип сообщения об ошибке будет зависеть от того, как приложение будет работать с этой точки, без этих данных. Если приложение будет работать так, как оно есть, значит, выборка была чем-то вроде обновления фона, подходящей вещью для показа была бы Snackbar. Почему?

Из руководства:

Закуски обеспечивают легкую обратную связь об операции, показывая короткое сообщение в нижней части экрана. Закуски могут содержать действие.

Легкий вес действительно является причиной здесь. Если приложение будет работать без этой фоновой выборки данных, вы не должны блокировать интерфейс с сообщением. Просто дайте знать пользователю, что все не так, как должно, так, чтобы он мог что-то сделать, если он заботится.

Вот пример, взятый из руководства :

введите описание изображения здесь

Для кода: Документы разработчика в Snackbars

Никогда не используйте Toast. Тост слишком мал, слишком короткий и может пройти незаметно. Используйте закусочную.

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

Никто не хочет видеть ничего, кроме пустого экрана, и если вы не можете заполнить его данными, вам нужно предоставить пользователю экран, из которого они могут выполнять альтернативные функции, даже если это значит выйти из приложения.

Из руководства по оповещениям:

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

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

и

Несогласование с помощью Snackbars: в ​​отличие от Alerts, Snackbars представлять необязательную, но важную информацию или действия и обычно появляются после действия. Например, используйте оповещение для подтверждения отбросив проект. Используйте закусочную, чтобы представить действие отмены, потому что действие является необязательным, и пользователь может продолжить свою основную задача без принятия мер.

Итак, если приложение не будет работать без этих данных, перейдите с Alert Dialog.

Ответ 4

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

Если сообщение об ошибке/возникает из фонового кода, например, службы, и ваше приложение неактивно, notification является хорошим альтернатива. Кроме того, ознакомьтесь с рекомендациями/шаблонами, описанными на developer сайте.