2016-03-04 43 views
0

当我调用onFailure方法时,需要使用Retrofit处理不同的异常,并依赖异常显示某些错误消息。改进异常处理

现在,我只显示面包的信息Error。我认为这还不够。

通知用户有关REST调用中的问题的适当方式是什么?

+0

您是否想根据失败的原因给用户不同的信息? –

+0

@NielsMasdorp,是的。但我不知道应该处理哪些异常:( – Near1999

回答

0

有很多选项可以通知用户有关应用程序功能中发生的错误。当谈到网络通话时,一个明智的方法是根据响应的HTTP代码(400,404,403或200)提示用户输入适当的消息,并使其能够重试。

小吃吧是材料设计器件是Android中可用的一个,使得开发者能够显示在屏幕的任何部分的消息(顶部,底部,...)和部分功能集成到它,以便用户可以“重试”或“撤消”她所做的事情。

enter image description here

这是非常简单和容易实现:

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 
     } 
    }); 

我建议你使用小吃吧用于显示信息与自定义功能用户。

为了根据您使用的api的http响应显示正确的消息,您应该知道meaning of each Http status code

有关实施和定制小吃店一个很好的教程,你可以研究在Android SnackBar Example by AndroidHive.

0

在我看来这个教程,你不应该告知用户什么技术,他们可能会不理解(例如,“ERROR 5653” )。所以你处理失败的方式取决于请求的上下文。如果请求杀死了应用程序的整个流程,则可能需要做的更多,然后只显示一个敬酒,但如果不是,我通常会显示一个Toast/Snackbar,并显示一般性错误消息,如:“出错了”。