本文共 2576 字,大约阅读时间需要 8 分钟。
第一步MainActivity.javapackage com.example.myoo;import android.app.Activity;import android.os.Bundle;import android.os.Handler;import android.view.View;import android.view.View.OnClickListener;import android.widget.Button;import android.widget.EditText;import android.widget.Toast;public class MainActivity extends Activity { //android:usesCleartextTraffic="true" 这句话非常重要 private Button btnsave; private EditText editurl; Handler handler = new Handler() { public void handleMessage(android.os.Message msg) { if(msg.what == 0x123) { Toast.makeText(getApplicationContext(), "开始下载", Toast.LENGTH_SHORT).show(); } }; }; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); btnsave = (Button) findViewById(R.id.btnsave); editurl = (EditText) findViewById(R.id.editurl); btnsave.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { new Thread() { @Override public void run() { String path = editurl.getText().toString(); try { DownLoadService.downLoad(path, MainActivity.this); } catch (Exception e) { e.printStackTrace();} handler.sendEmptyMessage(0x123); } }.start(); } }); }}第二步activity-main.xml第三步 androidManifest.xml android:usesCleartextTraffic="true"第四步:package com.example.myoo;import java.io.InputStream;import java.io.OutputStream;import java.net.URL;import android.content.Context;import android.widget.Toast;public class DownLoadService { public static void downLoad(String path,Context context)throws Exception { URL url = new URL(path); InputStream is = url.openStream(); //截取最后的文件名 String end = path.substring(path.lastIndexOf(".")); //打开手机对应的输出流,输出到文件中 OutputStream os = context.openFileOutput("Cache_"+System.currentTimeMillis()+end, Context.MODE_PRIVATE); byte[] buffer = new byte[1024]; int len = 0; //从输入六中读取数据,读到缓冲区中 while((len = is.read(buffer)) > 0) { os.write(buffer,0,len); } //关闭输入输出流 is.close(); os.close(); }}
转载地址:http://djqdy.baihongyu.com/