它取决于应用程序,以及应用程序在遇到此 错误时能够执行的操作。
,谷歌提出的Material Design Guide处理这些类型的消息,这两种方法是:
Dialogs(在这种情况下,警告对话框):
和Snackbars:
要你以你的示例为例:某些数据是从远程服务器请求的,但由于某些错误或异常,提取失败并且没有数据返回。
此时,错误消息的类型将取决于应用程序如何从该点开始运行,而没有该数据。如果应用程序按照原样运行,意味着获取与后台更新类似,则适当的显示应该是Snackbar。为什么?
从指南:
小吃店通过显示在屏幕的底部的一个简短的消息提供有关的操作轻便的反馈。 Snackbars可以包含一个动作。
轻量级是真正的原因。如果应用程序在没有获取后台数据的情况下运行,则不应该通过消息阻止UI。只要让用户知道事情没有按照他们应该的方式工作,以便他可以做些事情,如果他在意的话。
下面是从guide截取的示例:
对于代码:所述Developer Docs on Snackbars
决不使用吐司。吐司太小,太短暂,可能会被忽视。使用小吃店。
但是,在应用程序无法运行的情况下,或者只显示没有该数据的空白屏幕时,正确的做法是显示警报对话框。
没有人希望只看到一个空白屏幕,如果你不能用数据填充它,你需要给用户一个屏幕,他们可以执行其他功能,即使这是退出应用程序。
从指南提醒:
警报通知用户,需要在继续之前他们 确认或确认的情况或行动。根据所传输信息的严重程度和影响,它们在外观上稍有差异。
警报是中断的,紧急的,并且阻止用户在作出决定前继续执行 。
和
歧从小吃店:一个动作之后与此相反警报,小吃店 目前可选的,但重要的信息或动作,通常 出现。例如,使用警报确认丢弃草稿 。使用快餐栏来提交撤销操作,因为 该操作是可选的,用户可以继续其主要的 任务而不采取任何措施。
因此,如果没有该数据的应用程序将无法正常工作,请使用Alert Dialog。
谢谢。但至少有一个代码示例会很好。那个警告图标是一个内置的Android drawable还是你自己的drawable之一? – RenniePet
当发生非常重要的事情时,您应该只显示一个对话框,并且您需要确认用户,或者您需要绝对确定他们需要知道。例如:如果没有互联网连接,只有在没有互联网的情况下才能显示任何内容,如果缓存内容并且应用程序仍然可用但不新鲜,则显示一个对话框,您会显示类似于油煎面包块或应用内通知的内容并尝试在后台访问您的数据并刷新。小心对话,这是非常侵入性的 – MariusBudin