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 .  ja va 2s.  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