2013-04-05 147 views
0

我的應用程序執行不同的操作,取決於調用者和一些預定義的值。 當呼叫開始響鈴時,我需要儘可能快地從數據庫中讀取這些首選項並顯示它們。 我試圖在BroadcastReceiver中使用靜態變量,我也試圖讓它們在一個服務中,但它似乎死亡並且失去了所有的值。 如果我再次從數據庫中讀取它們,則顯示信息需要很長時間。 那麼,有沒有什麼方法可以告訴Android尊重部分內存,以便我可以堅持這些信息?android永久存儲器

感謝

編輯:從SharedPreferences讀取任何速度比從一個小數據庫中讀取數據?

+0

取決於計劃存儲多少值,SharedPreferences旨在存儲少量數據(我甚至讀過一些人有50個,他們沒有問題),而且速度非常快,而SQLite用於存儲更大量的數據。 – 2013-04-05 15:29:08

回答

1

使用SharedPreferences,它們就像是你的應用程序的私人部分,將永久保存你的值,直到用戶重新安裝(清除數據)應用程序。共享偏好是這樣的

// save string in sharedPreferences 
SharedPreferences settings = PreferenceManager.getDefaultSharedPreferences(getApplicationContext()); 
        SharedPreferences.Editor editor = settings.edit(); 
        editor.putString("some_key", string); // here string is the value you want to save 
        editor.commit();      

// restore string in sharedPreferences 
SharedPreferences settings = PreferenceManager.getDefaultSharedPreferences(getApplicationContext()); 
string = settings.getString("some_key", ""); 

很明顯,你可以節省INT布爾型等等,而不是字符串

0

號有沒有辦法告訴安卓堅持RAM內存。當VM關閉時RAM內存將永遠丟失。

在Android開發者網站

有一個在選擇了很好的討論和辦法,永久存儲http://developer.android.com/guide/topics/data/data-storage.html

,但對於一個快速的回答是: - 這取決於你可能需要使用的數據的類型和數量SharedPreferences或數據庫(SQLite)