Обработка полного дискового хранилища в Android

Этот вопрос немного изменился из первоначального, вот короткая информация:

Я заполнил дисковое хранилище на эмуляторе и получил его абсолютно бесполезным – процесс android.process.acore отображает диалоговое окно «… остановилось неожиданно» в цикле, поэтому в системе ничего не может быть сделано. Я не могу даже выключить его с помощью кнопки питания справа (он пытается отключиться в течение 10 минут, logcat заполнен исключениями). Отлично, это эмулятор, интересно, что произойдет, если это будет мое настоящее устройство.

Может быть, кто-то может объяснить причины такого поведения – должно ли это быть так?

Вот начальный вопрос, пожалуйста, также обращайтесь к моим изменениям:

Мне любопытно обращаться с случайной ситуацией, такой как нехватка дискового хранилища на устройстве Android.

Я просмотрел примеры на developer.android.com, и я вижу, что они даже не беспокоятся об обработке исключений.

Я вижу, что, когда дело доходит до классов SQLite, есть несколько исключений, таких как SQLiteOutOfMemoryException , но я не могу найти никакой информации, когда и как обрабатывать эти сценарии.

У кого-нибудь есть опыт:

  • Bulletproofing приложение для такой резкой ситуации
  • Способы проверки этого на эмуляторе
  • Отзывы от разочарованных пользователей (может быть, слышали о любых разочарованиях с помощью приложений-примеров или даже основных приложений ..?)

Заранее благодарю за ваше время.

[ Изменить ]

Я также сталкиваюсь с этим укусом на трекер для Android:

http://code.google.com/p/android/issues/detail?id=1653

Это нечто загадочное .. и кажется, что это призрак с 2008 года.

[ Edit2 ]

Alrite, с советами по комментариям: я просто сделал тест, используя:

dd if=/dev/urandom of=file 

С параметрами bs и подсчетом, выбранным для размещения оставшегося пространства,

И заполнил раздел / data.

Насколько я удивлен, что Google Maps просто разбился на SQLiteFullException. На самом деле все аварии приложений – даже телефон.

Правда ли, что никто не справляется с этими исключениями? Это нормально, что эти приложения просто убиваются с «.. неожиданно остановились»?

Solutions Collecting From Web of "Обработка полного дискового хранилища в Android"

Это ошибка, «память телефона заполнена! Удалите некоторые файлы на свободное место». У меня есть как минимум 7 концертов свободного места. Внутренняя память телефона заполнена. Не ваша карта памяти. Они совершенно разные.

Попробуйте удалить некоторые приложения, которые вам больше не нужны. А также попробуйте очистить кеш в некоторых ваших приложениях.

То, как я справляюсь с этим, – это обработка ошибок во всех файловых операциях, чтобы приложение не просто разбилось, и я делаю файл stat ( https://stackoverflow.com/a/5083482/1317564 ) в каталоге, который используется Чтобы обеспечить достаточное свободное пространство. Если нет, я покажу им приятное большое сообщение об ошибке. 😉 Как правило, сам телефон тоже будет жаловаться, поэтому они рано или поздно должны заметить проблему.