Application.onLowMemory() не вызывается

Я создал собственный класс Application.

Я пытаюсь отладить его, и код останавливается на Application.onCreate(), но не останавливается на onLowMemory.

Чтобы проверить сценарий, я открываю множество других приложений с большим объемом памяти.

Что я вижу, так это то, что сеанс отладки завершен (в eclipse), а некоторые из моих статических переменных стали нулевыми - указывает, что процесс завершен.

Мало того, что отладка НЕ ​​остановила @ точку останова метода, я поставил строку Log.e (...) и тоже не вижу ее.

Любая идея о том, почему метод не был вызван?

Благодарю.

1 ответ

Решение

Я не думаю, что есть какие-либо гарантии, что этот метод когда-либо будет вызван.

Из документов:

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

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

В общем, Android может убить ваше приложение в любое время, пока оно находится в фоновом режиме. Вы должны полагаться только на методы в жизненном цикле (такие как onPause, onStop, onDestroy), которые конкретно указывают, что они гарантированно будут вызваны для выполнения любой необходимой очистки.

Другие вопросы по тегам