Application.onLowMemory() не вызывается
Я создал собственный класс Application.
Я пытаюсь отладить его, и код останавливается на Application.onCreate(), но не останавливается на onLowMemory.
Чтобы проверить сценарий, я открываю множество других приложений с большим объемом памяти.
Что я вижу, так это то, что сеанс отладки завершен (в eclipse), а некоторые из моих статических переменных стали нулевыми - указывает, что процесс завершен.
Мало того, что отладка НЕ остановила @ точку останова метода, я поставил строку Log.e (...) и тоже не вижу ее.
Любая идея о том, почему метод не был вызван?
Благодарю.
1 ответ
Я не думаю, что есть какие-либо гарантии, что этот метод когда-либо будет вызван.
Из документов:
Хотя точная точка, в которой это будет вызываться, не определена, обычно это происходит примерно в то время, когда все фоновые процессы были уничтожены, то есть до того, как мы достигнем точки уничтожения процессов, размещающих службу и пользовательский интерфейс переднего плана, которых мы хотели бы избежать.
Поскольку точка, в которой он вызывается, не определена, он может выбрать его никогда не вызывать.
В общем, Android может убить ваше приложение в любое время, пока оно находится в фоновом режиме. Вы должны полагаться только на методы в жизненном цикле (такие как onPause, onStop, onDestroy), которые конкретно указывают, что они гарантированно будут вызваны для выполнения любой необходимой очистки.