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

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

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

瀏覽:35日期: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新建對象即可使用,3以后取消了HttpUtils,具體方法請看代碼。

首先創(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='請輸入下載路徑' 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)限,去申請寫的權(quán)限,會(huì)彈出對話框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)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持好吧啦網(wǎng)。

標(biāo)簽: Android
相關(guān)文章:
日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区
精品日韩在线| 麻豆久久久久久| 毛片在线网站| 欧美激情国产在线| 国内精品伊人| 成人精品亚洲| 97精品国产| 日本精品影院| 国产综合精品| 男女激情视频一区| 日韩精选在线| 快she精品国产999| 在线中文字幕播放| 中文字幕在线视频久| 国产欧美欧美| 日韩欧美在线中字| 亚洲欧美久久久| 日韩在线欧美| 国产毛片精品| 免费看精品久久片| 麻豆成全视频免费观看在线看| 麻豆视频一区| 国产精成人品2018| 久久精品99久久久| 人在线成免费视频| 午夜久久中文| 国产一区久久| 国产精品日韩久久久| 日本欧美在线| 亚洲一区日韩在线| 欧美精品中文| 亚洲另类黄色| 日韩欧美激情| 日韩 欧美一区二区三区| 国产一区二区三区四区| 国内精品福利| 国产精品91一区二区三区| 国产精品视频一区二区三区 | 成年男女免费视频网站不卡| 青草国产精品久久久久久| 91精品xxx在线观看| 美女精品在线| 欧美日韩水蜜桃| 黑人精品一区| 神马午夜在线视频| 香蕉成人av| 91看片一区| 日韩在线成人| 国产欧美一级| 久久国产成人午夜av影院宅| 亚洲午夜精品久久久久久app| 精品一区免费| 欧美激情精品| 国产在线观看91一区二区三区| 日本不卡视频一二三区| 国产欧美日韩一级| 国产网站在线| 免费在线欧美视频| 日韩一区二区三区免费| 99国产精品免费视频观看| 精品久久久亚洲| 精品国产黄a∨片高清在线| 日本免费在线视频不卡一不卡二| se01亚洲视频| 久久电影一区| 亚洲免费一区二区| 成人欧美一区二区三区的电影| 激情欧美国产欧美| 四虎884aa成人精品最新| 午夜精品婷婷| 日韩三区免费| 中文字幕在线视频久| 成人在线视频中文字幕| 麻豆国产精品一区二区三区| 国产白浆在线免费观看| 国产精品欧美三级在线观看| 欧美1区2区3区| 免费人成在线不卡| 国产成人精品一区二区免费看京| 在线成人动漫av| 先锋亚洲精品| 国产精品jk白丝蜜臀av小说| 国产精品毛片一区二区三区| 亚洲最新av| 日韩欧美午夜| 欧美sss在线视频| 日韩欧美综合| 午夜天堂精品久久久久| 亚洲a在线视频| 国产精品福利在线观看播放| 综合一区av| jizzjizz中国精品麻豆| 久久精品国产久精国产爱| 成人在线视频免费看| 国产调教一区二区三区| 国产精品porn| 性一交一乱一区二区洋洋av| 日本成人在线不卡视频| 色偷偷色偷偷色偷偷在线视频| 亚洲少妇在线| 国际精品欧美精品| 韩国久久久久久| 国产欧美日韩视频在线| 91久久亚洲| 免费日韩一区二区三区| 亚洲欧美日韩在线观看a三区 | 在线精品视频在线观看高清| 国产精品久久久久久模特| 亚洲一区二区三区高清| 日韩高清成人| 特黄特色欧美大片| 日韩av有码| 国内一区二区三区| 久久99伊人| 亚洲综合在线电影| 特黄毛片在线观看| 日韩在线a电影| 免费在线观看一区二区三区| 亚洲一级大片| 久久高清免费| 成人日韩av| 国产精品一区亚洲| 日韩综合一区二区| 国产综合亚洲精品一区二| 三级小说欧洲区亚洲区| 影音先锋久久精品| 激情综合网五月| 精品美女在线视频| 亚洲三级毛片| 亚洲高清毛片| 视频一区二区三区在线| 亚洲理论在线| 日韩电影免费网址| 日韩欧美在线精品| 国产午夜精品一区二区三区欧美 | 国产亚洲一区二区手机在线观看 | 日韩欧美三级| 视频在线在亚洲| 国产精品流白浆在线观看| 欧美一区二区三区免费看| 日本一区二区中文字幕| 综合国产视频| 欧美天堂在线| 精品一区欧美| 国产精品一区二区美女视频免费看| 国产视频一区在线观看一区免费| 亚洲精品网址| 日韩高清一区在线| 日韩国产欧美在线视频| 一级成人国产| 亚洲黄色在线| 日韩三区免费| 亚洲三级网址| 99精品99| 国模精品一区| 99精品99| 不卡一区2区| 免费日韩一区二区三区| 亚洲啊v在线免费视频| 日韩国产一区二区三区| 精品美女在线视频| 亚洲欧美日韩国产一区二区| 精品视频高潮| 麻豆国产精品一区二区三区| 国产人成精品一区二区三| 日本精品影院| 青青久久av| 日韩视频二区| 日韩影院在线观看| 久久在线电影| 亚洲激情二区| 蜜臀av性久久久久蜜臀aⅴ流畅| 国产精品美女| 青草国产精品| 精品国产一区二区三区2021| 精品中国亚洲| 日韩精品不卡一区二区| 久久中文字幕av一区二区不卡| 亚洲午夜91| 亚洲精品高潮| 欧美日韩亚洲一区三区| 麻豆视频一区二区| 日韩欧美精品综合| 久久不见久久见免费视频7 | 国产日韩欧美一区| 久久亚洲影院| 丝袜美腿一区二区三区| 国产亚洲精品v| 一区二区亚洲精品| 久久久久久黄| 四虎影视精品| 在线精品小视频| 亚洲福利免费| 黄色网一区二区| 91精品国产福利在线观看麻豆| 精品一区二区三区中文字幕在线| 亚洲三级观看| 亚洲乱码视频| 综合国产精品| 日韩手机在线|