2015-11-24 23 views
0

如果我不斷寫入位於內部存儲器或SD卡中的文件,則有可能在某一時刻沒有更多的可用空間。這可能會引發異常並創建損壞的文件,具體取決於文件的寫入方式。如果內部或外部存儲用完,Android可以通知嗎?

Android可以通知它空間不足,這樣我可以優雅地關閉文件?

據我所知,ACTION_DEVICE_STORAGE_LOW意圖不適用於SD卡。

+0

似乎是一個重複的http://stackoverflow.com/questions/3394765/how-to-check-available-space-on-android-device-on-mini-sd-card – Actiwitty

+0

在我的情況下,我我一直在寫這個文件。所以,我要麼不時檢查可用空間,要麼計算我寫入的字節數。如果可能的話,我正在爲系統回調跳躍。但我想,沒有別的辦法。 – Petrakeas

回答

1

兩種方法來實現這一點。

1)檢查存儲器中的剩餘內存(這裏有很多answers,只是搜索),並決定是否要創建文件或刪除它。這是建議在創建新文件之前檢查存儲。

2)在您的應用程序中有一個Application類的子類,這個方法名爲onLowMemory,它可以讓您的應用程序知道系統何時在低內存上運行。

+0

我不知道文件的大小。隨着時間的推移它正在增加。在開始流式傳輸/寫入之前,我可以檢查剩餘大小,並計算從那以後我寫入的字節數。 onLowMemory()與存儲無關。 – Petrakeas

+0

只有選項似乎檢查大小,並將其放在一些變量中,並僅根據剩餘大小值進行寫入。 – AAnkit