У меня есть приложение, которое я пишу, оно тяжело с растровыми изображениями. Если вы запустите приложение, выйдите из приложения и зайдите в него несколько раз, в конце концов вы будете вынуждены закрыть из-за нехватки памяти.
Я знаю, где происходит нехватка памяти, и мог бы попытаться поймать. Проблема в том, что если у меня нет памяти для запуска, что мне делать? Мое приложение просто не работает без растровых изображений, поэтому я просто не могу их показать.
Я попытался установить нулевое значение, когда я получил OnPause. Я попытался сделать финиш в OnPause. Я провел много исследований, прочитал много сообщений перед тем, как написать это письмо, и перепробовал много предложенных вещей.
Суть в том, что используемая память просто не освобождается или что-то еще происходит.
Я пытался использовать команду adb shell cat / proc / meminfo между запусками и остановками, и вот что я нашел:
MemTotal: 31348
Запустите приложение, все работает
MemTotal: 18180
Выход из приложения
MemTotal: 20160
Запустите приложение, все работает
MemTotal: 12480
Выход из приложения
MemTotal: 13740
Запустите приложение, все работает
MemTotal: 9600
Выход из приложения
MemTotal: 10844
Запустить приложение, первое исключение памяти, одно из 5 растровых изображений просто не отображается, но без сбоев
MemTotal: 6224
Выход из приложения
MemTotal: 7244
Запустить приложение, не запускается, выходит из памяти, что вызывает ошибку, которую я ловлю, поэтому выходит
MemTotal: 7836
Запустите приложение, исключение нехватки памяти и принудительное закрытие, кнопка принудительного закрытия
MemTotal: 31648
Как вы можете видеть, память теперь окончательно освобождена, но только после принудительного закрытия.
Неважно, если я начинаю и быстро ухожу или жду между каждым стартом и финишем, происходит одно и то же, поэтому я не могу просто ввести задержку.
Есть ли способ "принудительно" принудительно закрыть, кроме как не показывать сообщение и не быть ошибкой? Я думал, что это именно то, что должна делать функция finish (), но это не так.
Спасибо за любую помощь или идеи, которые я могу попробовать.