169 похожих чатов

Всем привет, разбираюсь с причиной закрытия foreground сервиса. Задача стоит

в том, чтобы понять при каких условиях/обстоятельствах у нас 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()
}

4 ответов

27 просмотров
roman G- Автор вопроса

как я понял при onTrimMemory = RUNNING_CRITICAL foreground сервис уже должен начать готовиться к закрытию

Не, у меня форграунд перыслающий смс на одном телефоне скоро уже 11 месяц крутится без перебоев. Добавь STICKY к режиму его запуска и все.

roman G- Автор вопроса
Сергей П.
Не, у меня форграунд перыслающий смс на одном теле...

Добавил START_STICKY, но после того как прибиваю сервис(вместе с приложением) он не восстанавливается и onStartCommand/onCreate не вызывается (На скрине мои попытке поиграться с флагами, но с любым флагом сервис не восстанавливается)

Похожие вопросы

Обсуждают сегодня

Господа, а что сейчас вообще с рынком труда на делфи происходит? Какова ситуация?
Rꙮman Yankꙮvsky
29
А вообще, что может смущать в самой Julia - бы сказал, что нет единого стандартного подхода по многим моментам, поэтому многое выглядит как "хаки" и произвол. Короче говоря, с...
Viktor G.
2
30500 за редактор? )
Владимир
47
а через ESC-код ?
Alexey Kulakov
29
Чёт не понял, я ж правильной функцией воспользовался чтобы вывести отладочную информацию? но что-то она не ловится
notme
18
У меня есть функция где происходит это: write_bit(buffer, 1); write_bit(buffer, 0); write_bit(buffer, 1); write_bit(buffer, 1); write_bit(buffer, 1); w...
~
14
Добрый день! Скажите пожалуйста, а какие программы вы бы рекомендовали написать для того, чтобы научиться управлять памятью? Можно написать динамический массив, можно связный ...
Филипп
7
Недавно Google Project Zero нашёл багу в SQLite с помощью LLM, о чём достаточно было шумно в определённых интернетах, которые сопровождались рассказами, что скоро всех "ибешни...
Alex Sherbakov
5
Ребят в СИ можно реализовать ООП?
Николай
33
https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_h_common.erl#L174 https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_olp.erl#L76 15 лет назад...
Maksim Lapshin
20
Карта сайта