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

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

在片段中使用 MediaScannerConnection.scanFile()?

在片段中使用 MediaScannerConnection.scanFile()?

藍山帝景 2021-10-27 16:29:50
我正在Fragment異步下載文件,并希望MediaScannerConnection.scanFile()在下載完成時調用。如果我坐下來等待下載完成而不離開我的 Fragment(或其托管活動),我就能獲得想要的結果。我面臨的問題是MediaScannerConnection.scanFile()需要一個上下文,我不想將用戶限制在一個Fragment/ 內Activity,以便上下文不為空。我如何MediaScannerConnection.scanFile()在后臺使用,以便我可以掃描文件并Toast在掃描完成時顯示一個,同時仍然在我的應用程序的其他部分導航(甚至跳出我的應用程序)?這就是我目前正在掃描的方式(帶有上下文):public static void mediaScanFile(Context context, String path) {    MediaScannerConnection.scanFile(context,            new String[]{path}, null,            new MediaScannerConnection.OnScanCompletedListener() {                public void onScanCompleted(String path, Uri uri) {                    Log.d("Tag", "Scan finished. You can view the image in the gallery now.");                }            });}
查看完整描述

1 回答

?
UYOU

TA貢獻1878條經驗 獲得超4個贊

首先,從 a 下載一個Fragment可能很快就會被破壞的文件不是一個好主意。您應該改用前臺服務。


如果您仍然想堅持使用片段,在您的情況下,您可以使用應用程序上下文。


在開始下載之前,將應用程序上下文的引用存儲為片段中的字段。


Context appContext;


// Inside onCreateView

appContext = getContext().getApplicationContext();

然后您可以使用應用程序上下文來掃描媒體。


這不會導致內存泄漏,因為應用程序上下文是單個共享實例,并且在應用程序被終止之前不會被銷毀。


查看完整回答
反對 回復 2021-10-27
  • 1 回答
  • 0 關注
  • 303 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號

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