2013-04-05 2 views
0

Мое приложение выполняет различные действия, зависящие от вызывающего и некоторые предопределенные значения. Когда звонок начинает звонить, мне нужно быть как можно быстрее, чтобы прочитать эти настройки из базы данных и отобразить их. Я пытался иметь статические переменные в BroadcastReceiver, я также пытался использовать их в службе, но он просто умирает и теряет все значения. Если я снова прочитаю их из базы данных, для отображения информации потребуется слишком много времени. Итак, есть ли способ сказать Android уважать часть памяти, чтобы я мог сохранить информацию?Постоянная память android

Благодаря

Редакция: Является ли чтение из SharedPreferences быстрее, чем чтение с небольшой базы данных?

+0

зависит от того, сколько значений планируют хранить, SharedPreferences предназначены для хранения небольшого количества данных (я даже читал, что у некоторых парней было 50, и у них не было проблем) и довольно быстрые, а SQLite предназначен для хранения большего объема данных. –

ответ

-1

Вы можете использовать общие настройки Android. http://developer.android.com/reference/android/content/SharedPreferences.html

Ответ на этот пост - отличное решение для этого. Android Shared Preferences

+0

Хотя он действительно должен использовать SharedPreferences, это действительно низкий качественный ответ - укажите пример, ссылку или еще несколько объяснений. – Shade

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

No. Там нет никакого способа узнать, Android сохранится память RAM. RAM-память всегда будет потеряна, когда VM остановится.

на сайте разработчиков Android есть хорошее обсуждение вариантов и подходы для постоянного хранения http://developer.android.com/guide/topics/data/data-storage.html

но быстрого ответа является: - в зависимости от типа и количества данных, вы, вероятно, хотите использовать SharedPreferences или база данных (SQLite)