日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区

您的位置:首頁技術(shù)文章
文章詳情頁

Android基于開源項(xiàng)目xutils3實(shí)現(xiàn)下載

瀏覽:42日期:2022-09-21 16:27:39

上一次自己寫了一個(gè)多線程斷點(diǎn)續(xù)傳下載的demo,過于麻煩,bug超多,所以我學(xué)習(xí)使用xutils來完成此功能。

先將xutils依賴搭建好(上一篇博客已經(jīng)具體寫了方法)

先看看效果圖:

Android基于開源項(xiàng)目xutils3實(shí)現(xiàn)下載Android基于開源項(xiàng)目xutils3實(shí)現(xiàn)下載

下面開始代碼的邏輯:

在xutils3以前使用HttpUtils新建對(duì)象即可使用,3以后取消了HttpUtils,具體方法請(qǐng)看代碼。

首先創(chuàng)建布局activity_main.xml:

<?xml version='1.0' encoding='utf-8'?><LinearLayout 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' android:orientation='vertical' tools:context='.MainActivity'> <EditText android: android:layout_width='match_parent' android:layout_height='wrap_content' android:hint='請(qǐng)輸入下載路徑' android:text='http://10.173.29.234/gp.apk' /> <Button android:layout_width='wrap_content' android:layout_height='wrap_content' android:text='下載' android:onClick='click'/> <ProgressBar android: android:layout_width='match_parent' android:layout_height='wrap_content' /></LinearLayout>

然后MainActivity.java:

import android.app.Activity;import android.content.pm.PackageManager;import android.support.v4.app.ActivityCompat;import android.support.v7.app.AppCompatActivity;import android.os.Bundle;import android.view.View;import android.widget.EditText;import android.widget.ProgressBar;import android.widget.Toast;import org.xutils.common.Callback;import org.xutils.http.RequestParams;import org.xutils.x;import java.io.File;public class MainActivity extends AppCompatActivity { private EditText et_path; private ProgressBar pb; //動(dòng)態(tài)獲取權(quán)限 private static final int REQUEST_EXTERNAL_STORAGE = 1; private static String[] PERMISSIONS_STORAGE = { 'android.permission.READ_EXTERNAL_STORAGE', 'android.permission.WRITE_EXTERNAL_STORAGE' }; private String fileName; private String appName; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); //動(dòng)態(tài)獲取權(quán)限 verifyStoragePermissions(this); x.view().inject(this); et_path = findViewById(R.id.et_path); pb = findViewById(R.id.progressBar); } //點(diǎn)擊按鈕下載(斷點(diǎn)續(xù)傳) public void click(View view) { //拿到路徑 String path = et_path.getText().toString().trim(); fileName = getFileName(path); RequestParams params = new RequestParams(path); params.setSaveFilePath(fileName); params.setAutoRename(true); x.http().get(params, new Callback.ProgressCallback<File>() { @Override public void onWaiting() { } @Override public void onStarted() { } @Override public void onLoading(long total, long current, boolean isDownloading) {//totle代表總進(jìn)度,current代表當(dāng)前進(jìn)度pb.setMax((int) total);pb.setProgress((int) current);System.out.println('測試1'); } @Override public void onSuccess(File result) {System.out.println('下載完成');Toast.makeText(getApplicationContext(), '下載成功', Toast.LENGTH_SHORT).show(); } @Override public void onError(Throwable ex, boolean isOnCallback) {System.out.println('測試2'); } @Override public void onCancelled(CancelledException cex) {System.out.println('測試3'); } @Override public void onFinished() {System.out.println('測試4'); } }); } //動(dòng)態(tài)獲取權(quán)限 public static void verifyStoragePermissions(Activity activity) { try { //檢測是否有寫的權(quán)限 int permission = ActivityCompat.checkSelfPermission(activity, 'android.permission.WRITE_EXTERNAL_STORAGE'); if (permission != PackageManager.PERMISSION_GRANTED) {// 沒有寫的權(quán)限,去申請(qǐng)寫的權(quán)限,會(huì)彈出對(duì)話框ActivityCompat.requestPermissions(activity, PERMISSIONS_STORAGE,REQUEST_EXTERNAL_STORAGE); } } catch (Exception e) { e.printStackTrace(); } } //獲取文件名-->'http://10.173.29.234/test.exe' public String getFileName(String path) { int start = path.lastIndexOf('/') + 1; appName = path.substring(start);// String fileName = Environment.getExternalStorageDirectory().getPath()+'/'+subString; String fileName = '/sdcard/file/'+ appName; return fileName; }}

第53行注意x.http().get(params, new Callback.ProgressCallback<File>(){};<>中要寫File,因?yàn)橄螺d的是一個(gè)文件,否則文件不會(huì)下載下來。

還要加上權(quán)限:

<uses-permission android:name='android.permission.INTERNET' /> <uses-permission android:name='android.permission.WRITE_EXTERNAL_STORAGE' /> <uses-permission android:name='android.permission.READ_EXTERNAL_STORAGE' />

以上就是本文的全部內(nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持好吧啦網(wǎng)。

標(biāo)簽: Android
相關(guān)文章:
日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区
欧洲亚洲一区二区三区| av资源中文在线天堂| 国产三级一区| 三级欧美在线一区| 久久激情婷婷| 九九久久电影| 在线观看免费一区二区| 婷婷激情图片久久| 亚洲精品**中文毛片| 国产精品久久久久久久久久齐齐| 羞羞答答国产精品www一本 | 国产丝袜一区| 国产一区调教| 国产一区观看| 久久先锋影音| 久久成人高清| 久久久久97| 久久久久久久久99精品大| 亚洲永久字幕| 国产图片一区| 色在线中文字幕| 日韩精品一二三区| 国产精品一页| 久久精品主播| 日韩不卡免费视频| 成人日韩在线| 香蕉久久一区| 福利一区在线| 最新日韩av| 精品国产乱码久久久久久1区2匹| 国产精品久久久久久久久久10秀| 亚洲视频综合| 国产精品一级在线观看| 天堂日韩电影| 欧美日韩精品一区二区三区视频| 中文字幕人成乱码在线观看| 亚洲乱亚洲高清| 日本午夜大片a在线观看| 亚洲香蕉久久| 久久久久久久久久久9不雅视频| 亚洲精品一二三**| 麻豆视频一区二区| 欧美69视频| 色乱码一区二区三区网站| 亚洲精选av| 三级精品视频| 久久久精品国产**网站| 日韩中文字幕视频网| 蜜桃视频欧美| 日韩中文影院| av最新在线| 欧美国产小视频| 美女久久99| 美女视频免费精品| 欧美亚洲国产日韩| 99日韩精品| 国精品一区二区三区| av日韩中文| 丰满少妇一区| 久久精品一本| 久久不卡日韩美女| 日韩在线a电影| 亚洲免费影视| 亚洲无线观看| 日韩高清一区二区| 欧美久久一区二区三区| 美国三级日本三级久久99 | 韩国久久久久久| 精品国产午夜肉伦伦影院| 国产精品91一区二区三区| 成人羞羞视频播放网站| www.com.cn成人| 精品中文在线| 久久av网站| 国产精品亚洲二区| 麻豆久久精品| 免费看黄色91| 在线视频精品| 亚洲在线一区| 日韩精品一级中文字幕精品视频免费观看 | 国产精品夜夜夜| 日本中文字幕一区二区| 天堂资源在线亚洲| 日韩高清不卡| 激情亚洲影院在线观看| 欧美国产极品| 老牛国内精品亚洲成av人片| 欧美日韩亚洲一区三区| 91成人小视频| 国产免费av一区二区三区| 日本午夜精品一区二区三区电影 | 国产精品三级| 国产一区丝袜| 欧美亚洲日本精品| 久久蜜桃精品| 亚洲自啪免费| 久久国产99| 日本不卡视频在线观看| 欧美在线不卡| 精品91福利视频| 四虎国产精品免费观看| 成人午夜国产| 亚洲一区国产一区| 亚洲精选久久| 免费亚洲婷婷| 在线日韩中文| 国产精品一级在线观看| 日韩精品永久网址| 欧美在线影院| 欧美xxxx性| 国产精品毛片久久| 久久国产精品99国产| 91成人精品在线| 98精品视频| 亚洲ww精品| av亚洲一区二区三区| 一区二区三区网站| 国产欧美69| 九色porny丨国产首页在线| 国产精品美女| 久久一区视频| 中文字幕一区二区av| 麻豆mv在线观看| 日韩精品a在线观看91| 久久激情中文| 日本午夜精品久久久久| 成人精品亚洲| 久久精品国产网站| 日精品一区二区三区| 久久婷婷丁香| 成人午夜网址| 国产精品一区毛片| 在线观看视频免费一区二区三区| 国产欧美一区二区精品久久久 | 日韩av电影一区| 欧美成a人免费观看久久| 欧美一区久久| 亚洲精品无播放器在线播放| 久久久久国产精品一区三寸| 久久超级碰碰| 欧美黄页在线免费观看| 亚洲一级黄色| 日韩高清欧美| 高潮一区二区| 都市激情国产精品| 成人日韩av| 精品久久99| 欧美精品不卡| 日韩精品电影一区亚洲| 一区二区小说| 99久久99久久精品国产片果冰 | 久久一级电影| 久久精品1区| 久久精品亚洲人成影院| 国产精品大片免费观看| 蜜臀va亚洲va欧美va天堂 | 精品国产美女a久久9999| 乱一区二区av| 综合日韩av| 欧美高清一区| 天堂成人免费av电影一区| 日韩欧美一区二区三区免费看| 亚洲三级欧美| 欧美日韩四区| 日本中文字幕不卡| 精品五月天堂| 九九久久电影| 亚洲午夜久久久久久尤物 | 日韩免费福利视频| 国户精品久久久久久久久久久不卡 | 精品视频在线一区二区在线| 精品国产精品久久一区免费式| 韩国久久久久久| 精品久久精品| 91日韩在线| 在线一区电影| 国产精品亚洲综合色区韩国| 久久电影tv| 亚洲不卡视频| 久久精品亚洲欧美日韩精品中文字幕| 国产亚洲毛片在线| 电影91久久久| 中文字幕av一区二区三区人| 麻豆高清免费国产一区| 夜夜嗨一区二区| 成人在线免费观看91| 精品亚洲美女网站| 午夜亚洲福利| 久久久久久久久久久9不雅视频| 亚洲国产一区二区三区在线播放| 中文字幕av亚洲精品一部二部| 国产不卡av一区二区| 一区二区三区四区在线观看国产日韩| 国产一区2区| 91福利精品在线观看| 蜜桃久久精品一区二区| 蜜臀91精品一区二区三区| 一区三区视频| 蜜桃视频一区二区三区在线观看| 国产精品外国|