android下的多线程下载实现方法
首先多线程的含义就是不止一个线程,具体线程的数量可以由实际情况决定。
例如这里我使用的是判断网络类型来选择线程数
ConnectivityManager conManager = (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE);String networkType = conManager.getActiveNetworkInfo().getTypeName();if (networkType.equals("MOBILE")) {//再次进行区分String netTypeInfo=conManager.getNetworkInfo(ConnectivityManager.TYPE_MOBILE).getExtraInfo();if(netTypeInfo.equals("cmwap")){threadNum=3;urlStr="http://10.0.0.172:80"+urlStr.substring(7);isCmwap=true;}if(netTypeInfo.equals("cmnet")){threadNum=3;}threadNum=3;}if (networkType.equals("WIFI")) {threadNum=5;}ConnectivityManager conManager = (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE);String networkType = conManager.getActiveNetworkInfo().getTypeName();
if(netTypeInfo.equals("cmwap")){threadNum=3;urlStr="http://10.0.0.172:80"+urlStr.substring(7);HttpURLConnection con = (HttpURLConnection) url.openConnection();if (con.getHeaderFieldKey(i).equalsIgnoreCase("Content-length")) {//获得head的Content_lengthcontentlength = con.getHeaderField(i);