package com.yeshi.base.utils.downutil; import android.content.Context; import android.content.Intent; import android.net.Uri; import android.os.AsyncTask; import android.util.Log; import java.io.File; /** * @author weikou2015 下载工具类 */ public class DownFiles extends AsyncTask implements DownLoadFile.FileProgressListener { private static final String TAG = "DownFiles"; // TextView tv; Context context; IProgress progress; public DownFiles(Context context, IProgress progress) { // this.tv = tv; this.context = context; this.progress = progress; } @Override protected void onProgressUpdate(Integer... values) { super.onProgressUpdate(values); Log.i(TAG, "下载进度:" + values[0]); if (progress != null) progress.getProgress(values[0]); // if (values[0] == 100) { // tv.setText("完成"); // } else { // tv.setText("下载" + values[0] + "%"); // } } @Override protected String doInBackground(String... params) { String url = params[0]; // 下载 DownLoadFile dl = new DownLoadFile(); String[] urls = url.split("/"); String name = ""; if (urls.length > 0) name = FileUtils.getRootPath(context) + File.separator + urls[urls.length - 1]; else name = FileUtils.getRootPath(context) + File.separator + System.currentTimeMillis() + ".apk"; System.out.println("APK名称:" + name); try { File f = dl.downLoadFile(this, name, url, context); return f.getPath(); } catch (Exception e) { } return ""; } // 完成网络请求 @Override protected void onPostExecute(String result) { super.onPostExecute(result); if (!StringUtils.isNullOrEmpty(result)&&result.endsWith(".apk")) { Intent intent = new Intent(Intent.ACTION_VIEW); intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK); intent.setDataAndType(Uri.fromFile(new File(result)), "application/vnd.android.package-archive"); context.startActivity(intent); } } @Override public void update(int progress) { publishProgress(progress); } public interface IProgress { public void getProgress(int p); } }