1. 程式人生 > >OkHttp下載檔案

OkHttp下載檔案

package com.exbawei.liteli.myokhttpprogressbar;

import android.content.Intent;
import android.net.Uri;
import android.os.Environment;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.ProgressBar;

import com.zhy.http.okhttp.OkHttpUtils;
import 
com.zhy.http.okhttp.callback.FileCallBack; import com.zhy.http.okhttp.callback.StringCallback; import java.io.File; import okhttp3.Call; public class MainActivity extends AppCompatActivity { private File file; private ProgressBar bar; @Override protected void onCreate(Bundle savedInstanceState) { super
.onCreate(savedInstanceState); setContentView(R.layout.activity_main); bar = (ProgressBar) findViewById(R.id.progress); OkHttpUtils.get().url("http://huixinguiyu.cn/Assets/js/newsnew.js").build().execute(new StringCallback() { @Override public void onError(Call call, Exception e, int
id) { } @Override public void onResponse(String response, int id) { String string= response.toString(); } }); file = new File(Environment.getExternalStorageDirectory().getPath()); } public void bbb(View view){ bar.setVisibility(View.VISIBLE); OkHttpUtils.get().url("http://p.gdown.baidu.com/e96035c05cfbd104bc614338d32e4998cf247dcb6b1d2f55352c28c485a21dc66ba8b52319123d749562b790fc47aaaee5da5908708263ce0b1692be82a460934eed49f570b9c59411293bb6bbc5eaa6b5d33a12fa8942809ab5006d401340245313c56321cf811b955d8594032edf172207325d3d4fe11fd2a043066ab78e7def5069cf551eefddc1250aa4f4faf971cddb65081a3004655f51e0adfa56339673d241fd87d214181c62654fcf4ec14746c495a66bbafe057a887ec1a8741de6fec48d8ed0e75ab7e22a9538a70aeb0d590439066f50f5505137d99b62a87fa5") .build() .execute(new FileCallBack(Environment.getExternalStorageDirectory().getAbsolutePath(),"shf.apk") { @Override public void onError(Call call, Exception e, int id) { } @Override public void inProgress(float progress, long total, int id) { bar.setProgress((int) (100*progress)); } @Override public void onResponse(File response, int id) { String string= response.toString(); if (bar.getProgress()==bar.getMax()) { Intent intent = new Intent(Intent.ACTION_VIEW); intent.setDataAndType(Uri.fromFile(response),"application/vnd.android.package-archive"); startActivity(intent); } } }); } }
compile 'com.zhy:okhttputils:2.6.2'

<uses-permission android:name="android.permission.INTERNET"></uses-permission>
    <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/>
    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>