Android Open Source - JiangHomeStyle_Android_Phone Down Load Thread From Project Back to project page JiangHomeStyle_Android_Phone .
License The source code is released under:
Apache License
If you think the Android project JiangHomeStyle_Android_Phone listed in this page is inappropriate, such as containing malicious code/tools or violating the copyright, please email info at java2s dot com, thanks.
Java Source Code package com.cidesign.jianghomestylephone.http;
/ * w w w . j a v a 2 s . c o m * /
import java.io.BufferedInputStream;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.net.HttpURLConnection;
import java.net.MalformedURLException;
import java.net.URL;
import java.util.List;
import android.content.Context;
import android.content.Intent;
import android.os.Environment;
import android.util.Log;
import com.androidquery.AQuery;
import com.androidquery.callback.AjaxCallback;
import com.androidquery.callback.AjaxStatus;
import com.cidesign.jianghomestylephone.entity.ArticleEntity;
import com.cidesign.jianghomestylephone.entity.FileListEntity;
import com.cidesign.jianghomestylephone.service.DownloadService;
import com.cidesign.jianghomestylephone.tools.FileOperationTools;
import com.cidesign.jianghomestylephone.tools.MD5Tools;
import com.cidesign.jianghomestylephone.tools.StorageUtils;
import com.cidesign.jianghomestylephone.tools.XmlParseTools;
import com.j256.ormlite.dao.RuntimeExceptionDao;
public class DownLoadThread extends Thread
{
private static final String TAG = DownLoadThread.class.getSimpleName();
private FileListEntity flEntity;
private RuntimeExceptionDao<FileListEntity, Integer > fileDao = null;
private RuntimeExceptionDao<ArticleEntity, Integer > articleDao = null;
private Context ctx;
public DownLoadThread(Context ctx,RuntimeExceptionDao<FileListEntity, Integer > fileDao,
RuntimeExceptionDao<ArticleEntity, Integer > articleDao, FileListEntity flEntity)
{
this.ctx = ctx;
this.fileDao = fileDao;
this.articleDao = articleDao;
this.flEntity = flEntity;
}
@Override
public void run()
{
String address = flEntity.getUrl();
if (address != null && !address.equals("" ))
{
File target = new File (StorageUtils.FILE_TEMP_ROOT + flEntity.getServerID() + ".zip" );
OutputStream output = null;
try
{
URL url = new URL(address);
HttpURLConnection conn = (HttpURLConnection) url.openConnection();
InputStream input = conn.getInputStream();
if (!target.exists())
{
target.createNewFile();// ?????
output = new FileOutputStream(target);
// ????????
byte [] buffer = new byte [4 * 1024];
int count = 0;
while ((count = input.read(buffer)) != -1)
{
output.write(buffer, 0, count);
}
output.flush();
// ??????????????MD5?
if (flEntity.getMd5().equals(MD5Tools.getFileMD5String(target)))
{
// ???????????????????
File file = new File (StorageUtils.FILE_ROOT + flEntity.getServerID());
if (file.isDirectory())
{
StorageUtils.delete(file);
}
// ?????????????
FileOperationTools.unZip(StorageUtils.FILE_TEMP_ROOT + flEntity.getServerID() + ".zip" ,
StorageUtils.FILE_ROOT);
// ?????????????
flEntity.setDownloadFlag(1);
fileDao.update(flEntity);
ArticleEntity articleEntity = XmlParseTools.readDocXML(StorageUtils.FILE_ROOT + "/"
+ flEntity.getServerID() + "/doc.xml" );
articleEntity.setServerID(flEntity.getServerID());
articleEntity.setPost_date(flEntity.getTimestamp());
if (articleEntity != null)
{
articleDao.createOrUpdate(articleEntity);
}
//???????????????
Intent intent = new Intent(DownloadService.BROADCAST_UPDATE_DATA_ACTION);
intent.putExtra("MODEL_TYPE" , articleEntity.getCategory());
intent.putExtra("serverID" ,articleEntity.getServerID());
ctx.sendBroadcast(intent);
}
else
{
Log.d(TAG, "????????????????" + flEntity.getServerID());
}
StorageUtils.delete(target);
}
}
catch (MalformedURLException e)
{
e.printStackTrace();
}
catch (IOException e)
{
e.printStackTrace();
}
finally
{
try
{
if (output != null)
{
output.close();
}
}
catch (IOException e)
{
e.printStackTrace();
}
}
}
}
}
Java Source Code List com.cidesign.jianghomestylephone.DetailActivity.java com.cidesign.jianghomestylephone.JiangActivity.java com.cidesign.jianghomestylephone.MainActivity.java com.cidesign.jianghomestylephone.SplashActivity.java com.cidesign.jianghomestylephone.adapter.CommunityViewpagerAdapter.java com.cidesign.jianghomestylephone.adapter.HumanityViewpagerAdapter.java com.cidesign.jianghomestylephone.adapter.LandscapeViewpagerAdapter.java com.cidesign.jianghomestylephone.adapter.LayoutCaculateAdapter.java com.cidesign.jianghomestylephone.adapter.StoryViewpagerAdapter.java com.cidesign.jianghomestylephone.async.AsyncDownTask.java com.cidesign.jianghomestylephone.async.AsyncInitCommunityData.java com.cidesign.jianghomestylephone.async.AsyncInitData.java com.cidesign.jianghomestylephone.async.AsyncInitHomeData.java com.cidesign.jianghomestylephone.async.AsyncInitHumanityData.java com.cidesign.jianghomestylephone.async.AsyncInitLandscapeData.java com.cidesign.jianghomestylephone.async.AsyncInitStoryData.java com.cidesign.jianghomestylephone.db.DatabaseConfigUtil.java com.cidesign.jianghomestylephone.db.DatabaseHelper.java com.cidesign.jianghomestylephone.entity.ArticleEntity.java com.cidesign.jianghomestylephone.entity.FileListEntity.java com.cidesign.jianghomestylephone.entity.LayoutEntity.java com.cidesign.jianghomestylephone.entity.RelativeLayoutRulesEntity.java com.cidesign.jianghomestylephone.http.ArticalOperation.java com.cidesign.jianghomestylephone.http.DownLoadThread.java com.cidesign.jianghomestylephone.service.DownloadService.java com.cidesign.jianghomestylephone.tools.CategoryDataLoadingLogic.java com.cidesign.jianghomestylephone.tools.FileOperationTools.java com.cidesign.jianghomestylephone.tools.JiangCategory.java com.cidesign.jianghomestylephone.tools.LayoutMarginSetting.java com.cidesign.jianghomestylephone.tools.LoadingDataFromDB.java com.cidesign.jianghomestylephone.tools.LoadingImageTools.java com.cidesign.jianghomestylephone.tools.MD5Tools.java com.cidesign.jianghomestylephone.tools.StorageUtils.java com.cidesign.jianghomestylephone.tools.TimeTools.java com.cidesign.jianghomestylephone.tools.WidgetCache.java com.cidesign.jianghomestylephone.tools.XmlParseTools.java com.cidesign.jianghomestylephone.version.NetworkTool.java com.cidesign.jianghomestylephone.version.VersionConfig.java com.cidesign.jianghomestylephone.version.VersionUpdate.java com.cidesign.jianghomestylephone.widget.CommunityRelativeLayout.java com.cidesign.jianghomestylephone.widget.CustomScrollView.java com.cidesign.jianghomestylephone.widget.HScrollViewTouchLogic.java com.cidesign.jianghomestylephone.widget.HumanityRelativeLayout.java com.cidesign.jianghomestylephone.widget.LandscapeRelativeLayout.java com.cidesign.jianghomestylephone.widget.PopMenu.java com.cidesign.jianghomestylephone.widget.StoryRelativeLayout.java org.apache.tools.zip.AbstractUnicodeExtraField.java org.apache.tools.zip.AsiExtraField.java org.apache.tools.zip.CentralDirectoryParsingZipExtraField.java org.apache.tools.zip.ExtraFieldUtils.java org.apache.tools.zip.FallbackZipEncoding.java org.apache.tools.zip.GeneralPurposeBit.java org.apache.tools.zip.JarMarker.java org.apache.tools.zip.NioZipEncoding.java org.apache.tools.zip.Simple8BitZipEncoding.java org.apache.tools.zip.UnicodeCommentExtraField.java org.apache.tools.zip.UnicodePathExtraField.java org.apache.tools.zip.UnixStat.java org.apache.tools.zip.UnparseableExtraFieldData.java org.apache.tools.zip.UnrecognizedExtraField.java org.apache.tools.zip.UnsupportedZipFeatureException.java org.apache.tools.zip.Zip64ExtendedInformationExtraField.java org.apache.tools.zip.Zip64Mode.java org.apache.tools.zip.Zip64RequiredException.java org.apache.tools.zip.ZipConstants.java org.apache.tools.zip.ZipEightByteInteger.java org.apache.tools.zip.ZipEncodingHelper.java org.apache.tools.zip.ZipEncoding.java org.apache.tools.zip.ZipEntry.java org.apache.tools.zip.ZipExtraField.java org.apache.tools.zip.ZipFile.java org.apache.tools.zip.ZipLong.java org.apache.tools.zip.ZipOutputStream.java org.apache.tools.zip.ZipShort.java org.apache.tools.zip.ZipUtil.java