запрос на статус, это я провожжу в коррутине в бесконечно цикле.И выхожу из него, когда получаю то чтт мне нужно. Вопрос - какие могут быть подводные камни? Мне нужно завязываться на жц? код выполняется при свернутом приложении.
Если в viewModelScope запускаете, то все ок Единственное что цикл должен быть не while(true), а while(isActive)
а что такое isActive ? это моя локальная переменная?
Нет, это проперти контекста, которая true если джоб не была отменена или не завершилась, почитайте доку если интересно
а. я понял о чем вы. это проверка не отменена ли джоба
Да да да
Ну для начала добавьте туда логгер в виде строковой переменной хранящейся в applicatoin классе, значение которой можно просмотреть просто где-то в текст вью (в отд окошке скажем). Кидайте в нее через добавление в конец время и дату каждого "трехсекундного вызова". Узнаете много интересного о том дает ли андроид приложению в фоне что то делать каждые три секунды.
я уже проверил - работает у меня на 10 андройде, пока система не убила активити
Я либу написал и тестирую (на джаве, извините, человек пожилой, модное не люблю) - она позволяет дергать коллбэк или обновлять лайфату пока приложение в фоне, и даже в в doze mode, более того, рестартит его сразу если система его прибила/убила. Но вне переднего плана никаких 3 секунд не гарантируется по итогам тестов на 10ке. Раз в минуту плюс/минус без проблем. Во сне чаще 4 минут. В долгом doze не хуже 20. И авторебут конечно. Надо? Как минимум оно сможет оживить прилку и пусть корутина обратно долбит раз в 3 сек.раз умеет
скорее всего мне этой информации хватит, чтоб обсудить с аналитиком наше дальнейшее действие. все же не факт, что система сама не убьет активити и тогда все вообще встанет
Система убивает прложение а не активность
конечно. но мое приложение очень завязано на жц активити, если она сдохнет - то сдохнут все мои фрагменты и di вместе с ними(
Если что то надо долбить из фона невзирая ни на что, используя посл.введенные юзером данные - это из vm можно вынести
Тупо в какой нить синглтон?
Да. Прикрепленный к репозиторию/модели по ж/ц. Vm отдает туда данные и говорит - долби по ним каждые 3 секунды или как выйдет пока не отменят, невзирая на ребуты и doze
можно ли создать этот синглтон вне di и переживет ли он убийство объекта внутри которого был создан?
https://github.com/psa98/Dont_Kill_My_App/tree/master/app Тут короче посмотри идеи к обсуждению с аналитиком. И суточные логи в экселе ему предъяви - там видны рестарты и пропуски вызовов когда прилка точно дохлая. https://github.com/psa98/Dont_Kill_My_App/tree/master/app С вас ишью, предложения,форки, звезды. Может порт на котлин
Прикрепи к application class, сохрани стейт (параметры задания в префах) и при рестарте он продолжит долбить то же и туда же
эх, идея рабочая и правильная, но в моем случае недееспособнаяя(( у меня нет доступу ни к application ни активити. и di я инициализирую во flow fragment
Откуда такая информация?
Ну кто ж не дает получить доступ? Эти методы - обычный метод модели/репозитория. В application пару строк добавить.
архитектура приложения. я делаю фичи аарниками, у которых нет ни аппликейшн ни активити
Ну это к архитекторам. Пусть метод для выживания реализуют отдельно и выставят api наружу под описанную идею. Задача нужная
да, согласен! спасибо
Обсуждают сегодня