专栏首页肖蕾的博客统一Retrofit失败的处理情况

统一Retrofit失败的处理情况

import android.content.Context;
import android.widget.Toast;

import java.io.IOException;

import retrofit2.Call;
import retrofit2.Callback;
import retrofit2.Response;

/**
 * Created by xiaolei on 2017/3/2.
 */

public abstract class ICallBack<T> implements Callback<T>
{
    private Context context;
    public ICallBack(Context context)
    {
        this.context = context;
    }
    public abstract void onSuccess(T result) throws Exception;
    public abstract void onField(Call<T> call, Throwable t);
    public abstract void onFinally();
    
    @Override
    public void onResponse(Call<T> call, Response<T> response)
    {
        try
        {
            if(response.isSuccessful())
            {
                onSuccess(response.body());
            }else
            {
                onFailure(call,new IOException(response.code()+""));
            }
        }catch (Exception e)
        {
            onFailure(call,new IOException(response.code()+""));
        }finally
        {
            onFinally();
        }
    }

    @Override
    public void onFailure(Call<T> call, Throwable t)
    {
        try
        {
            if(context != null)
            {
                Toast.makeText(context, "t:" + t, Toast.LENGTH_SHORT).show();
            }
            onField(call,t);
        }finally
        {
            onFinally();
        }
    }
}

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 使用这个,自定义AlertDialog在你手里都不是问题

    Xiaolei123
  • 自定义BaseAdapter完美解决ListView异常:java.lang.IllegalStateException这是代码使用方法原理另外

    Xiaolei123
  • 关于Android开发中遇到的内存不够的情况

    Xiaolei123
  • 2240. Arbitrage

    思路: 在图模型中找负环即可。此处符合负环的特征如下:在负环上的顶点会不断更新最大值,所以在N轮没有停止更新就说明存在了负环。

    用户1147447
  • 单例模式(下)

    在上篇 《单例模式(上)》一文中介绍了单例定义、使用场景、实现方式以及不足,本篇继续整理针对不足的解决方案以及唯一性的相关讨论与实现等。

    汐楓
  • POJ 刷题系列:1503 Integer Inquiry

    POJ 刷题系列:1503 Integer Inquiry 传送门:POJ 1503 Integer Inquiry 题意: 实现VeryLongIntege...

    用户1147447
  • 如何处理My lead fiori应用的buffer问题

    /sap/opu/odata/sap/CRM_LEAD/AcceptLead?ObjectId=%2723%27&sap-client=300 第一个roun...

    Jerry Wang
  • 设计模式-适配器模式

    用户5927264
  • 如何找到status group里定义的所有status value

    database table CMSD_LO_STATUS有status group和status value两个字段,下面是找出指定的status group...

    Jerry Wang
  • POJ 刷题系列:2262. Goldbach's Conjecture

    POJ 刷题系列:2262. Goldbach’s Conjecture 传送门:POJ 2262. Goldbach’s Conjecture 题意: 给定...

    用户1147447

扫码关注云+社区

领取腾讯云代金券