2012-02-22 2 views
0

Может ли кто-нибудь сказать мне, если память телефона заполнена (внутренняя память, потому что я предполагаю, что там, где shared preferences сохранены по умолчанию, нет?), И мое приложение пытается записать значения shared preference (SharedPreferences class), что происходит потом? Могу ли я/должен ли я это учитывать при использовании общих настроек или что?Общие настройки для Android

+2

Я просто думаю, когда память телефона заполнена, все приложения работают плохо, не только мои. Таким образом, система будет предупреждать пользователя. Я думаю, что я не буду беспокоиться об этом ... –

+3

Я предполагаю, что в этом случае ваше приложение даже не запустится, потому что для памяти кучи должна быть свободная память. – Android

+0

@ Android, но там должны быть зарезервированы части памяти, чтобы предотвратить полный сбой (не так ли?) – keyser

ответ

1
SharedPreferences pref = getSharedPreferences("my_pref", Context.MODE_PRIVATE); 
Editor edit = pref.edit(); 
edit.putString("name", "AndroDev"); 
edit.commit(); 

commit будет, наконец, записывает значения в sharedpreference, и если он не сделает этого, он возвращает ложь. Поэтому в вашем случае он вернет false. Таким образом, вы можете проверить это значение в своем сценарии.

+0

Отлично, именно то, что я искал. Это простое решение, не представляю, как я об этом не думал :) Спасибо. – AndreiBogdan

+1

У меня есть продолжение: что должен делать программист в этом сценарии? предупредить пользователя и свернуть приложение? Я имею в виду, сбой, если приоритеты, которые нужно сохранить, жизненно важны (иначе просто бдительность?). Здесь есть хорошие практики? – keyser

+0

Мой личный (начинающий) совет должен был бы посмотреть, можете ли вы сохранить информацию на внешней карте, если она существует или объявить другого пользователя, нет больше места для сохранения информации и попросить его что-либо удалить. :) Опять же, это моя личная идея о том, как это сделать. – AndreiBogdan

Смежные вопросы