主界面:
public class MainActivity extends AppCompatActivity { private ConnectivityBroadcastReceiver receiver; private Callback.Cancelable cancelable; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); IntentFilter filter = new IntentFilter(); filter.addAction(ConnectivityManager.CONNECTIVITY_ACTION); receiver = new ConnectivityBroadcastReceiver(); registerReceiver(receiver,filter); } public void goDown() { Button(null); } public void Button(View view) { RequestParams params = new RequestParams("http://tc.sinaimg.cn/maxwidth.800/tc.service.weibo.com/p3_pstatp_com/a0dc4efe4d9f66ea71dd1fee2691b6b6.jpg"); //设置缓存路径 params.setSaveFilePath(getExternalCacheDir().getAbsolutePath()+"/SWJ"); //设置可以断点续传 params.setAutoResume(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, "下载出现错误", 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) { Log.e("tag", "progress+ " + current / total * 100 + "%"); } }); } public class ConnectivityBroadcastReceiver 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 networkInfo = manager.getActiveNetworkInfo(); if (networkInfo != null && networkInfo.isConnected()) { if (ConnectivityManager.TYPE_WIFI == networkInfo.getType()) { Toast.makeText(MainActivity.this, "您处于wifi状态下,可放心使用", Toast.LENGTH_SHORT).show(); goDown(); } else if (ConnectivityManager.TYPE_MOBILE == networkInfo.getType()) { Toast.makeText(MainActivity.this, "您处于4G网络下,注意保护自己的流量", 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(receiver); } }Application类:
public class App extends Application { @Override public void onCreate() { super.onCreate(); x.Ext.init(this); } }