我需要在调用onFailure
方法时使用Retrofit处理不同的异常,并依赖于异常显示一些错误消息。
现在,我只显示带有消息Error
的祝酒词。我认为这还不够。
通知用户有关REST调用中的问题的适当方法是什么?
答案 0 :(得分:0)
有很多选项可以通知用户应用程序功能中发生的错误。当谈到网络呼叫时,一种明智的方法是根据响应的http代码(400,404,403或200)提示用户提供适当的消息,并使她能够重试。
SnackBar 是Android中提供的Material设计组件之一,使开发人员可以在屏幕的任何部分(顶部,底部,......)显示消息并集成一些函数进入它,以便用户可以“重试”或“撤消”她所做的事情。
实施起来非常简单明了:
Snackbar snackbar = Snackbar
.make(coordinatorLayout, "No internet connection!", Snackbar.LENGTH_LONG)
.setAction("RETRY", new View.OnClickListener() {
@Override
public void onClick(View view)
{
//your retry functionality
}
});
我建议您使用snackbar通过自定义功能向用户显示消息。
要根据您正在使用的API的http响应显示正确的消息,您应该知道meaning of each Http status code。
有关实施和自定义Snackbars的优秀教程,您可以在Android SnackBar Example by AndroidHive.上学习本教程
答案 1 :(得分:0)
在我看来,你不应该告诉用户任何技术问题,他们可能不会理解它(例如“ERROR 5653”)。因此,处理失败的方式取决于请求的上下文。如果请求杀死了应用程序的整个流程,您可能希望执行更多操作,那么只显示一个Toast,但如果不是,我通常会显示Toast
/ Snackbar
,其中包含一般错误消息: “出了点问题。”