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); } }
离线下载(MainActivity)
最新推荐文章于 2024-08-01 23:38:21 发布