离线下载(MainActivity)

来源:互联网 发布:怎么刷新微信运动数据 编辑:程序博客网 时间:2024/05/29 04:45
package com.example.lixianxiazai;import android.content.BroadcastReceiver;import android.content.Context;import android.content.Intent;import android.content.IntentFilter;import android.net.ConnectivityManager;import android.net.NetworkInfo;import android.support.v7.app.AppCompatActivity;import android.os.Bundle;import android.util.Log;import android.view.View;import android.widget.Toast;import org.xutils.common.Callback;import org.xutils.common.task.PriorityExecutor;import org.xutils.http.RequestParams;import org.xutils.x;import java.io.File;import java.net.Authenticator;public class MainActivity extends AppCompatActivity {    private Callback.Cancelable cancelable;    private ConnectivitvBroadcastReceiver mconnectivitvBroadcastReceiver;    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_main);        IntentFilter filter = new IntentFilter();        filter.addAction(ConnectivityManager.CONNECTIVITY_ACTION);        mconnectivitvBroadcastReceiver = new ConnectivitvBroadcastReceiver();        registerReceiver(mconnectivitvBroadcastReceiver, filter);    }    public void goDown() {        onClick(null);    }    public void onClick(View v) {        //下载        RequestParams params = new RequestParams("http://tc.sinaimg.cn/maxwidth.800/tc.service.weibo.com/p3_pstatp_com/a0dc4efe4d9f66ea71dd1fee2691b6b6.jpg");        //设置保存路径        params.setSaveFilePath(getExternalCacheDir().getAbsolutePath() + "/bvhv.jpg");        Log.e("tag", "=====================" + getExternalCacheDir().getAbsolutePath());        //设置可以断点续传        params.setAutoRename(true);        //设置一个线程池,有三个线程        params.setExecutor(new PriorityExecutor(3, true));        cancelable = x.http().get(params, new Callback.ProgressCallback<File>() {            @Override            public void onSuccess(File result) {                Toast.makeText(MainActivity.this, "下载完成", Toast.LENGTH_SHORT).show();            }            @Override            public void onError(Throwable ex, boolean isOnCallback) {                Toast.makeText(MainActivity.this, "下载onError", Toast.LENGTH_SHORT).show();            }            @Override            public void onCancelled(CancelledException cex) {            }            @Override            public void onFinished() {                Toast.makeText(MainActivity.this, "下载onFinished", Toast.LENGTH_SHORT).show();            }            @Override            public void onWaiting() {            }            @Override            public void onStarted() {            }            @Override            public void onLoading(long total, long current, boolean isDownloading) {            }        });    }    //接受网咯状态的改变    public class ConnectivitvBroadcastReceiver extends BroadcastReceiver {        @Override        public void onReceive(Context context, Intent intent) {            if (ConnectivityManager.CONNECTIVITY_ACTION.equals(intent.getAction())) {                //如果走到此处,说明网洛已经发生变化                ConnectivityManager manager = (ConnectivityManager) getSystemService(context.CONNECTIVITY_SERVICE);                NetworkInfo activeNetworkInfo = manager.getActiveNetworkInfo();                if (activeNetworkInfo != null && activeNetworkInfo.isConnected()) {                    if (ConnectivityManager.TYPE_WIFI == activeNetworkInfo.getType()) {                        goDown();                        Toast.makeText(MainActivity.this, "wifi可用,下载吧", Toast.LENGTH_SHORT).show();                    } else if (ConnectivityManager.TYPE_MOBILE == activeNetworkInfo.getType()) {                        Toast.makeText(MainActivity.this, "移动网络可用,下载吧", Toast.LENGTH_SHORT).show();                        cancelable.cancel();                    } else {                        Toast.makeText(MainActivity.this, "网络不可用", Toast.LENGTH_SHORT).show();                    }                } else {                    Toast.makeText(MainActivity.this, "网络不可用", Toast.LENGTH_SHORT).show();                }            }        }    }    @Override    protected void onDestroy() {        super.onDestroy();        unregisterReceiver(mconnectivitvBroadcastReceiver);    }}
原创粉丝点击