【问题标题】:How to manage the lot of callback from the retrofit response?如何管理改造响应中的大量回调?
【发布时间】:2015-10-07 20:53:24
【问题描述】:

在从单个活动中获取响应时,我们必须编写大量回调并且必须获取这些代码的 onResponse()onFailure()。是否有任何可管理的方法,以便我们可以使用唯一的单个 onFailure()onReponse() 覆盖单个回调?

例如

  private void fetchMoviesFromWeb(int pageNumber, String moviesCategories) {
        Callback<MoviesInfo> moviesInfoCallback = new Callback<MoviesInfo>() {
            @Override
            public void onResponse(Response<MoviesInfo> response) {

                }


            @Override
            public void onFailure(Throwable t) {

            }
        };
        retrofitManager.getMoviesInfo(moviesCategories, pageNumber, Constants.API_KEY, moviesInfoCallback);
    }

/************** **********/
private void fetchMoviesCommentFromWeb()
{

 Callback<MoviesComment> moviesInfoCallback = new Callback<MoviesComment>() {
                @Override
                public void onResponse(Response<MoviesComment> response) {

                    }


                @Override
                public void onFailure(Throwable t) {

                }
            };
            retrofitManager.getMoviesInfo(moviesCategories, pageNumber, Constants.API_KEY, moviesInfoCallback);
}

【问题讨论】:

    标签: retrofit


    【解决方案1】:

    您可以创建一个抽象回调,将这两种方法实现为无操作,并在您只需要两种方法之一时从该回调扩展:

    public abstract class AbstractCallback<T> implements Callback<T> {
        @Override
        public void onFailure(Throwable t) {
            // ignore by default
        }
    
        @Override
        public void onResponse(Response<T> response) throws IOException {
            // ignore by default
        }
    }
    
    Callback<MoviesComment> moviesInfoCallback = new AbstractCallback<MoviesComment>() {
        @Override
        public void onFailure(Throwable t) {
            // only do something with the failure
        }
    }
    

    【讨论】:

      猜你喜欢
      • 2019-05-09
      • 1970-01-01
      • 2023-03-14
      • 1970-01-01
      • 2021-02-24
      • 2016-03-22
      • 2018-07-07
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多