package com.cundong.izhihu.task; import java.io.IOException; import android.content.Context; import com.cundong.izhihu.Constants; import com.cundong.izhihu.db.NewsDataSource; import com.cundong.izhihu.entity.NewsListEntity; import com.cundong.izhihu.util.GsonUtils; import com.cundong.izhihu.util.ListUtils; import com.cundong.izhihu.util.ZhihuUtils; /** * 类说明: 从服务器下载最新新闻列表,Task * * @date 2014-9-15 * @version 1.0 */ public class GetLatestNewsTask extends BaseGetNewsTask { public GetLatestNewsTask(Context context, ResponseListener listener) { super(context, listener); } @Override protected NewsListEntity doInBackground(String... params) { String oldContent = null, newContent = null; String date = null; NewsListEntity newsListEntity = null; try { newContent = getUrl(Constants.Url.URL_LATEST); newsListEntity = (NewsListEntity) GsonUtils.getEntity(newContent, NewsListEntity.class); date = newsListEntity != null ? newsListEntity.date : null; oldContent = ((NewsDataSource) getDataSource()).getContent(date); isRefreshSuccess = !ListUtils.isEmpty(newsListEntity.stories); } catch (IOException e) { e.printStackTrace(); this.isRefreshSuccess = false; this.mException = e; } catch (Exception e) { e.printStackTrace(); this.isRefreshSuccess = false; this.mException = e; } isContentSame = checkIsContentSame(oldContent, newContent); if (isRefreshSuccess && !isContentSame) { ((NewsDataSource) getDataSource()).insertOrUpdateNewsList(Constants.NEWS_LIST, date, newContent); } if (newsListEntity != null) { ZhihuUtils.setReadStatus4NewsList(newsListEntity.stories); } return newsListEntity; } }