2016-02-23 44 views
3

getMaximumSize()方法SQLiteDatabase對象得到的值的單位是什麼。Android:Sqlite數據庫getMaximumSize()以什麼單位返回大小?

Android文檔不包含關於該單元的信息。 http://developer.android.com/reference/android/database/sqlite/SQLiteDatabase.html#getMaximumSize%28%29

在Android平板電腦上執行該方法後,我得到值4398046507008

如果單位是位則等於549GB 如果單位是字節,然後它等於4398GB

我檢查了部分Settings應用的Storage&USB,我發現它只有內部的12GB存儲。它看起來有些不妥。

在我的一個應用程序中,我想顯示可用於存儲緩存的Web服務數據和已用空間的總空間。

回答

0

源代碼我期待在該方法的實施過程是這樣:

public long getMaximumSize() { 
    long pageCount = DatabaseUtils.longForQuery(this, "PRAGMA max_page_count;", null); 
    return pageCount * getPageSize(); 
} 

getPageSize()回報字節,通過文件的數量,因此該返回的字節數爲好。

+0

這裏有很多不一致的地方,返回的數字在實踐中太大了,是否有辦法讓設備的限制限制最大尺寸? – Bhargav

+0

以純粹的實用術語來說,該值來自以下兩個sqlite逗號的結果:'PRAGMA page_size'次'PRAGMA max_page_count'。你可以在這裏閱讀它們:https://www.sqlite.org/pragma.html現在,你得到的最大值可能只是理論上的最大值。這些值可能隨時間而改變。根據這些信息,您可能找不到有用的方法結果,這是它自己的問題。您可能還想指出,如果您之前調用了setMaximumSize(),則此值可能很有用。 –

+0

因此,如果這種方法在實際情況下變得毫無用處,您是否可以建議一種方法來實現我之前評論中提到的內容? – Bhargav

相關問題