91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

android實現文件下載功能

小億
158
2023-12-19 01:46:03
欄目: 編程語言

Android實現文件下載功能可以使用以下步驟:

  1. 在AndroidManifest.xml文件中添加網絡訪問權限:
<uses-permission android:name="android.permission.INTERNET" />
  1. 創建一個異步任務類來執行文件下載操作。在該任務類中,使用HttpURLConnection或OkHttp等網絡庫發送HTTP請求,并將文件保存到設備的存儲空間中。
public class DownloadFileTask extends AsyncTask<String, Integer, String> {

    private Context mContext;
    
    public DownloadFileTask(Context context) {
        mContext = context;
    }

    @Override
    protected String doInBackground(String... params) {
        String fileUrl = params[0];
        String fileName = params[1];
        try {
            URL url = new URL(fileUrl);
            HttpURLConnection connection = (HttpURLConnection) url.openConnection();
            connection.connect();

            // 獲取文件大小
            int fileLength = connection.getContentLength();

            // 創建輸入流
            InputStream input = new BufferedInputStream(url.openStream());

            // 創建輸出流
            OutputStream output = new FileOutputStream(Environment.getExternalStorageDirectory() + "/" + fileName);

            byte[] data = new byte[1024];
            int total = 0;
            int count;
            while ((count = input.read(data)) != -1) {
                total += count;
                // 發布進度信息
                publishProgress((int) (total * 100 / fileLength));
                output.write(data, 0, count);
            }

            // 關閉流
            output.flush();
            output.close();
            input.close();
        } catch (Exception e) {
            e.printStackTrace();
            return "下載失敗";
        }
        return "下載成功";
    }

    @Override
    protected void onPostExecute(String result) {
        Toast.makeText(mContext, result, Toast.LENGTH_SHORT).show();
    }

    @Override
    protected void onProgressUpdate(Integer... progress) {
        // 更新下載進度
        Log.d("Download progress", progress[0] + "%");
    }
}
  1. 在Activity或Fragment中調用該異步任務類進行文件下載:
String fileUrl = "http://example.com/file.txt";
String fileName = "file.txt";
DownloadFileTask downloadTask = new DownloadFileTask(this);
downloadTask.execute(fileUrl, fileName);

上述步驟中,需要注意的是,文件下載需要在后臺線程中進行,所以使用了AsyncTask來執行下載操作。另外,記得在AndroidManifest.xml文件中添加存儲空間訪問權限:

<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />

0
玛沁县| 亚东县| 沁水县| 崇信县| 句容市| 新兴县| 百色市| 清水县| 绥江县| 那坡县| 南陵县| 广昌县| 临泉县| 阿勒泰市| 陆良县| 南雄市| 双辽市| 西安市| 东乡县| 红河县| 绥化市| 玉门市| 景谷| 土默特右旗| 盐亭县| 台湾省| 界首市| 治县。| 庄浪县| 内丘县| 河津市| 新巴尔虎右旗| 江永县| 云阳县| 嘉鱼县| 潮安县| 阳新县| 开封县| 门头沟区| 迁西县| 达孜县|