в том, чтобы понять при каких условиях/обстоятельствах у нас foreground сервис был закрыт
Нашел такие функции onTrimMemory и onLowMemory
Кажется они как раз предупреждают что foregraund сервис скоро будет закрыт
По документации не совсем понял в чем отличие onTrimMemory и onLowMemory и точно ли после вызова этих функций forgraund сервис будет закрыт
Может кто-то сталкивался с подобной задачей?
private var lastTrimMemoryValue = -1;
private var onLowMemoryCalled = false;
/// Уведомляет нас о текущем состоянии памяти
/// https://developer.android.com/reference/android/content/ComponentCallbacks2.html
///
/// В Foreground-е отлавливаются следующие события:
/// RUNNING_MODERATE - The device is beginning to run low on memory. Your app is running and not killable.
/// RUNNING_LOW - The device is running much lower on memory. Your app is running and not killable, but please release unused resources to improve system performance (which directly impacts your app's performance).
/// RUNNING_CRITICAL - The device is running extremely low on memory. Your app is not yet considered a killable process, but the system will begin killing background processes if apps do not release resources, so you should release non-critical resources now to prevent performance degradation.
override fun onTrimMemory(trimLvl: Int) {
Log.d(TAG, "onTrimMemory: $trimLvl")
lastTrimMemoryValue = trimLvl;
super.onTrimMemory(trimLvl)
}
override fun onLowMemory() {
Log.d(TAG, "onLowMemory")
onLowMemoryCalled = true;
super.onLowMemory()
}
как я понял при onTrimMemory = RUNNING_CRITICAL foreground сервис уже должен начать готовиться к закрытию
Не, у меня форграунд перыслающий смс на одном телефоне скоро уже 11 месяц крутится без перебоев. Добавь STICKY к режиму его запуска и все.
Добавил START_STICKY, но после того как прибиваю сервис(вместе с приложением) он не восстанавливается и onStartCommand/onCreate не вызывается (На скрине мои попытке поиграться с флагами, но с любым флагом сервис не восстанавливается)
в манифесте вроде есть stopWithTask
Обсуждают сегодня