package com.cundong.izhihu.task;
import java.io.IOException;
import android.content.Context;
import android.text.TextUtils;
import com.cundong.izhihu.ZhihuApplication;
import com.cundong.izhihu.db.BaseDataSource;
import com.cundong.izhihu.entity.NewsListEntity;
import com.cundong.izhihu.http.HttpClientUtils;
/**
* 类说明: 从服务器下载内容,base Task
*
* @date 2014-9-7
* @version 1.0
*/
public abstract class BaseGetNewsTask extends MyAsyncTask<String, String, NewsListEntity> {
protected Context mContext = null;
protected ResponseListener mListener = null;
protected Exception mException = null;
protected boolean isRefreshSuccess = true;
protected boolean isContentSame = false;
public BaseGetNewsTask(Context context, ResponseListener listener) {
mContext = context;
mListener = listener;
}
@Override
protected void onPreExecute() {
super.onPreExecute();
if (mListener != null) {
mListener.onPreExecute();
}
}
@Override
protected void onPostExecute(NewsListEntity result) {
super.onPostExecute(result);
// 如果当前任务已经取消了,则直接返回
if (isCancelled()) {
return;
}
if (mListener != null) {
if (isRefreshSuccess) {
mListener.onPostExecute(result);
} else {
mListener.onFail(mException);
}
}
}
protected boolean checkIsContentSame(String oldContent, String newContent) {
if (TextUtils.isEmpty(oldContent)||TextUtils.isEmpty(newContent)) {
return false;
}
return oldContent.equals(newContent);
}
protected String getUrl(String url) throws IOException, Exception {
return HttpClientUtils.get(mContext, url, null);
}
protected BaseDataSource getDataSource() {
return ZhihuApplication.getDataSource();
}
public interface ResponseListener {
public void onPreExecute();
public void onPostExecute(NewsListEntity listEntity);
public void onProgressUpdate(String value);
public void onFail(Exception e);
}
}