android:显示错误的方法

android:显示错误的方法,android,Android,是否有推荐的“Android方式”向用户显示错误 例如,假设我在我的应用程序/服务中捕获到一个异常,并且需要通知用户该异常-如果正在显示应用程序,通常会显示一个toast/弹出对话框,如果应用程序在后台,则会在通知栏中显示一个通知?当然取决于错误的类型。但永远不要在通知栏中显示错误 一般来说,在不通知用户的情况下,尝试优雅地继续执行应用程序 如果错误导致应用程序无法继续执行用户要求它执行的操作,请举杯庆祝 编辑:如我在回复中的评论所述,您可以根据错误的严重程度显示AlertDialog或Toas

是否有推荐的“Android方式”向用户显示错误


例如,假设我在我的应用程序/服务中捕获到一个异常,并且需要通知用户该异常-如果正在显示应用程序,通常会显示一个toast/弹出对话框,如果应用程序在后台,则会在通知栏中显示一个通知?

当然取决于错误的类型。但永远不要在通知栏中显示错误

一般来说,在不通知用户的情况下,尝试优雅地继续执行应用程序

如果错误导致应用程序无法继续执行用户要求它执行的操作,请举杯庆祝

编辑:如我在回复中的评论所述,您可以根据错误的严重程度显示AlertDialog或Toast


但在我看来,,使用通知来显示错误消息仅适用于非常特定的用例,例如在下载程序或音乐播放器中,应用程序正在后台执行用户创建的任务。

如果您想给出任何自定义消息,则您可以通过使用Toast来回答自己的问题

try {
///stuffs
} catch(IOException ioe) {
Toast.makeT......
}

您可以显示服务中的toast吗?我将使用什么上下文?@Mewzer在活动中的处理程序上显示来自服务使用的文本,并将其传递给服务,从服务中您可以使用sendMessage(msg),它将触发handleMessage(…)您可以在那里显示toast。我不会使用
toast
,因为用户可能会暂时从屏幕上分散注意力,而看不到它。如果存在需要通知用户的错误,请使用带有按钮的
AlertDialog
,选择用户如何处理错误。@Sqonk-谢谢,如果我的应用程序当前不在前台(即错误发生在附带服务中),该怎么办?我是否仍然使用AlertDialog?。如果您没有可见的
活动
,则用户更可能不会在屏幕上看到您从
服务
中显示错误
Toast
(他们甚至可能不知道
服务
正在运行)。在这种情况下,我不同意Vinay S Shenoy的观点,我认为您应该使用
通知
,它可以通过
警报对话框触发
活动
。这确实取决于你的应用程序做了什么,也取决于用户可以做什么来纠正这种情况。“永远不要在通知栏中显示错误。”-我不同意。例如,我使用一个
IntentService
来执行每日数据下载,它会创建一个“持续”的
通知
,以显示类似于Google Play更新应用程序时的进度。下载结束时,
通知更改为显示“下载完成”。但是,如果出现故障,例如缺少网络连接,
通知显示“下载失败”,当用户点击它时,它会打开一个
活动
,允许用户“重试”。嗯。。。我没想到。但这仅适用于某些用例,即当应用程序暂停时,操作在后台发生。在用户与应用程序交互的情况下,最好显示祝酒词……我同意这取决于具体情况,但我仍然认为用户很容易从屏幕上分心,祝酒词是短暂的,他们可能会错过。我认为如果他们与应用程序交互,那么使用
警报对话框
会更好。请参阅我对OP问题的评论。是否使用AlertDialogs取决于严重性,我认为。。。我必须用这个更新我的答案。