亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

如何將下載的文件保存在應用程序內存的緩存文件夾中?

如何將下載的文件保存在應用程序內存的緩存文件夾中?

慕容森 2021-11-11 14:20:37
我知道以前有人問過類似的問題,但確實沒有可行的解決方案。我正在通過 DownloadManager 下載多個 PDF 文件,我想將這些文件保存到應用程序內存的緩存文件夾中,但找不到任何方法。這是我的代碼:public class MainActivity extends AppCompatActivity {    Button btn;    DownloadManager downloadManager;    List<String> myList = new ArrayList<String>();    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_main);        myList.add("https://doc.lagout.org/programmation/Actionscript%20-%20Flash%20-%20Flex%20-%20Air/Flash%20Development%20for%20Android%20Cookbook%20-%20Labrecque%20-%20Packt%20%282011%29/Flash%20Development%20for%20Android%20Cookbook%20-%20Labrecque%20-%20Packt%20%282011%29.pdf");        myList.add("http://www.csc.kth.se/utbildning/kth/kurser/DD143X/dkand11/Group1Mads/andreas.ulvesand.daniel.eriksson.report.pdf");        myList.add("http://enos.itcollege.ee/~jpoial/allalaadimised/reading/Android-Programming-Cookbook.pdf");        myList.add("https://x.coe.phuket.psu.ac.th/warodom/242-320/ebook/9781785883262-ANDROID_PROGRAMMING_FOR_BEGINNERS.pdf");        myList.add("https://www.cs.cmu.edu/~bam/uicourse/830spring09/BFeiginMobileApplicationDevelopment.pdf");        myList.add("https://commonsware.com/Android/Android-1_0-CC.pdf");        btn = findViewById(R.id.download_btn);        btn.setOnClickListener(new View.OnClickListener() {            @Override            public void onClick(View v) {                downloadManager = (DownloadManager)getSystemService(Context.DOWNLOAD_SERVICE);                for(int i = 0; i < myList.size(); i++) {                    Uri uri = Uri.parse(myList.get(i));                    DownloadManager.Request request = new DownloadManager.Request(uri);                    request.setNotificationVisibility(DownloadManager.Request.VISIBILITY_VISIBLE_NOTIFY_COMPLETED);                    Long reference = downloadManager.enqueue(request);                }            }        });    }}
查看完整描述

2 回答

?
一只名叫tom的貓

TA貢獻1906條經驗 獲得超3個贊

文檔

內部存儲:始終可用。此處保存的文件只能由您的應用訪問。當用戶卸載您的應用程序時,系統會從內部存儲中刪除您應用程序的所有文件。

Android 內置下載管理器無法訪問您的應用程序內部存儲,因此您只能通過調用setDestinationInExternalFilesDir或將文件保存到外部存儲目錄中setDestinationInExternalPublicDir

但是如果你想把它們保存在你的內部存儲中,只需注冊一個接收,然后將文件從外部存儲復制到內部存儲。


查看完整回答
反對 回復 2021-11-11
?
胡子哥哥

TA貢獻1825條經驗 獲得超6個贊

您可以使用設置下載文件的本地目的地。

request.setDestinationUri(Uri uri)

您需要使用context.getCacheDir()來獲取緩存目錄并將文件保存到緩存。

最后,在您的路徑 xml 中添加以下代碼以允許提供程序獲取 uri。

<cache-path name="cache_files" path="."  />


查看完整回答
反對 回復 2021-11-11
  • 2 回答
  • 0 關注
  • 294 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號