Android uses the open-source project Xutils to download files with multiple threads
#2 UI implementation in layout files
#3. Implement code functions in mainactivity
Package com. wzw. downloaddemo; import java. io. file; import com. lidroid. xutils. httpUtils; import com. lidroid. xutils. exception. httpException; import com. lidroid. xutils. http. httpHandler; import com. lidroid. xutils. http. responseInfo; import com. lidroid. xutils. http. callback. requestCallBack; import android. OS. bundle; import android. app. activity; import android. view. menu; import android. view. view; import android. widget. editText; import android. widget. textView; public class MainActivity extends Activity {private EditText etPath; private TextView tvInfo; @ Overrideprotected void onCreate (Bundle savedInstanceState) {super. onCreate (savedInstanceState); setContentView (R. layout. activity_main); etPath = (EditText) findViewById (R. id. TV _path); tvInfo = (TextView) findViewById (R. id. TV _info);} public void download (View v) {String path = etPath. getText (). toString (); HttpUtils http = new HttpUtils (); http. download (path,/sdcard/360.exe, true, true, new RequestCallBack
() {@ Override public void onStart () {tvInfo. setText (connecting ...);} @ Override public void onLoading (long total, long current, boolean isUploading) {tvInfo. setText (current ++ total) ;}@ Override public void onFailure (HttpException error, String msg) {tvInfo. setText (msg) ;}@ Overridepublic void onSuccess (ResponseInfo
ResponseInfo) {// TODO Auto-generated method stubtvInfo. setText (downloaded: + responseInfo. result. getPath ());}});}}
Using Utils is much more convenient than using traditional methods.