2017-08-03 19 views

回答

1

它更好,或者我應該每次讀取

都不是,恕我直言。使用更智能的緩存。

  • 對此數據有一個靜態線程安全緩存。

  • 圍繞該緩存設計API,以便緩存可以延遲加載。無論誰試圖檢查緩存,都應該異步獲取結果,因此如果緩存爲空,則可以在後臺線程上加載緩存內容。這可以通過使用監聽器/回調格局,RxJava/RxAndroid,LiveData等來完成

  • Application自定義子類,並在那裏,override onTrimMemory()。如果onTrimMemory()a value of TRIM_MEMORY_BACKGROUND或更高版本一起調用,請清空緩存,以便在用戶未主動使用您的應用時,您的內存使用率較低。

這樣,使用緩存的代碼並不關心是否需要將數據加載與否,而當它是不可能的緩存需要使用可以最大限度地減少內存消耗。或者,如果你一次不需要所有88,000姓氏的姓氏,將它們存儲在SQLite數據庫中,並根據需要查詢該數據庫。

0

通常運行時使用內存,所以你應該是相同的。不同之處在於,您可以將其作爲對象存儲在內存中,並根據需要將其從內存中移除,以便存在一些內存選擇而不是一致的內存負載。

你有沒有考慮使用API​​或JavaScript的邏輯和加載JSON呢?使用API​​或JavaScript作爲業務邏輯加載JSON的不同體系結構的方法可能有助於加載和卸載包含數據的對象。 JSON可以靜態存儲在本地或甚至是動態的(存儲在遠程服務器中),這可以幫助輕鬆更新姓氏。此外,這種方法可以根據傳遞的參數查詢數據,因此您可能不需要一次加載所有80.0000個姓氏。我看到這個問題是關於Android的,但是對於任何設備來說,架構方法都是一樣的。

我希望這可能會幫助您或其他人根據體系結構和移動平臺來確定方法(如果使用的話,沒有真正定義的問題)。

乾杯!

相關問題