androidstuido_schooltest_8_Network
生活随笔
收集整理的這篇文章主要介紹了
androidstuido_schooltest_8_Network
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
文章目錄
- MainActivity.java
- activity_main.xml
- output:
MainActivity.java
package com.kanxue.school_test_2;import androidx.appcompat.app.AppCompatActivity;import android.app.ProgressDialog; import android.os.AsyncTask; import android.os.Bundle; import android.os.SystemClock; import android.view.View; import android.widget.Toast;import java.io.File; import java.io.FileOutputStream; import java.io.InputStream; import java.net.HttpURLConnection; import java.net.MalformedURLException; import java.net.URL;public class MainActivity extends AppCompatActivity {//進度條private ProgressDialog dialog;//apk Fileprivate File apkFile;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);}public void downloadApk(View view){//Toast.makeText(this, "下載apk", Toast.LENGTH_SHORT).show();//啟動異步任務(wù)處理new AsyncTask<Void,Integer,Void>(){//主線程中顯示進度條@Overrideprotected void onPreExecute() {dialog = new ProgressDialog(MainActivity.this);dialog.setProgressStyle(ProgressDialog.STYLE_HORIZONTAL);dialog.show();//設(shè)置下載文件的保存路徑 /stroage/sdcard/Android/pageckage_name/files/xxx.apkapkFile = new File("/data/local/tmp/","update.apk");}@Overrideprotected Void doInBackground(Void... voids) {try {//1.下載地址String path = "http://192.168.31.65:8080/kgb-messenger.apk";URL url = new URL(path);HttpURLConnection connection = (HttpURLConnection) url.openConnection();//2.設(shè)置connection.setConnectTimeout(5000);connection.setReadTimeout(10000);//3.連接connection.connect();//4.請求并響應(yīng)int responsecode = connection.getResponseCode();if(responsecode == 200){//設(shè)置dialog的最大進度dialog.setMax(connection.getContentLength());//apk文件大小 總字節(jié)數(shù)//5.得到apk文件流InputStream is = connection.getInputStream();//6.創(chuàng)建輸出流FileOutputStream fos = new FileOutputStream(apkFile);//7.邊讀邊寫byte[] buffer = new byte[1024];int len = -1;while((len = is.read(buffer))!=-1){fos.write(buffer,0,len);//8.更新進度publishProgress(len);//暫停50毫秒SystemClock.sleep(50);}//關(guān)閉流fos.close();is.close();}//9.下載完成后關(guān)閉網(wǎng)絡(luò)連接connection.disconnect();} catch (Exception e) {e.printStackTrace();}return null;}//下載完成后更新主界面@Overrideprotected void onPostExecute(Void aVoid) {dialog.dismiss();}//主線程中不斷去更新進度@Overrideprotected void onProgressUpdate(Integer... values) {dialog.incrementProgressBy(values[0]);}}.execute();} }activity_main.xml
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"xmlns:tools="http://schemas.android.com/tools"android:layout_width="match_parent"android:layout_height="match_parent"><Buttonandroid:layout_width="wrap_content"android:layout_height="wrap_content"android:layout_alignParentLeft="true"android:layout_alignParentRight="true"android:layout_alignParentTop="true"android:layout_marginTop="35dp"android:text="下載最新版本APK"android:onClick="downloadApk"/></RelativeLayout>output:
總結(jié)
以上是生活随笔為你收集整理的androidstuido_schooltest_8_Network的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: androidstuido_school
- 下一篇: 2020-11-5(安卓)