/* * Copyright (C) 2012 www.amsoft.cn * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package com.ab.http; import android.os.Handler; import android.os.Message; // TODO: Auto-generated Javadoc /** * © 2012 amsoft.cn * 名称:AbHttpResponseListener.java * 描述:Http响应监听器 * * @author 还如一梦中 * @version v1.0 * @date:2013-11-13 上午9:00:52 */ public abstract class AbHttpResponseListener { /** The handler. */ private Handler mHandler; /** * 构造. */ public AbHttpResponseListener() { super(); } /** * 描述:获取数据开始. */ public abstract void onStart(); /** * 完成后调用,失败,成功,调用. */ public abstract void onFinish(); /** * 重试. */ public void onRetry() {} /** * 描述:失败,调用. * * @param statusCode the status code * @param content the content * @param error the error */ public abstract void onFailure(int statusCode, String content,Throwable error); /** * 进度. * * @param bytesWritten the bytes written * @param totalSize the total size */ public void onProgress(long bytesWritten, long totalSize) {} /** * 开始消息. */ public void sendStartMessage(){ sendMessage(obtainMessage(AbHttpClient.START_MESSAGE, null)); } /** * 完成消息. */ public void sendFinishMessage(){ sendMessage(obtainMessage(AbHttpClient.FINISH_MESSAGE,null)); } /** * 进度消息. * * @param bytesWritten the bytes written * @param totalSize the total size */ public void sendProgressMessage(long bytesWritten, long totalSize) { sendMessage(obtainMessage(AbHttpClient.PROGRESS_MESSAGE, new Object[]{bytesWritten, totalSize})); } /** * 失败消息. * * @param statusCode the status code * @param content the content * @param error the error */ public void sendFailureMessage(int statusCode,String content,Throwable error){ sendMessage(obtainMessage(AbHttpClient.FAILURE_MESSAGE, new Object[]{statusCode,content, error})); } /** * 重试消息. */ public void sendRetryMessage() { sendMessage(obtainMessage(AbHttpClient.RETRY_MESSAGE, null)); } /** * 发送消息. * @param msg the msg */ public void sendMessage(Message msg) { if (msg != null) { msg.sendToTarget(); } } /** * 构造Message. * @param responseMessage the response message * @param response the response * @return the message */ protected Message obtainMessage(int responseMessage, Object response) { Message msg; if (mHandler != null) { msg = mHandler.obtainMessage(responseMessage, response); } else { msg = Message.obtain(); if (msg != null) { msg.what = responseMessage; msg.obj = response; } } return msg; } /** * Gets the handler. * * @return the handler */ public Handler getHandler() { return mHandler; } /** * 描述:设置Handler. * * @param handler the new handler */ public void setHandler(Handler handler) { this.mHandler = handler; } }