Anonymous
Вот видео, в первом случае закрываю через кнопку Back, а затем скипаю свайпом. Во втором случае Сразу скипаю свайпом. Во втором случае Сервис живет дальше Почему так работает?
.
а так вы предлагаете написать за вас компонент
Anonymous
Дак я же через диспетчер убил процесс активити
Anonymous
точнее всех компоненотов приложения.
.
нет, ты вызвал clear task по сути, и под него нужна обработка
.
почитай про смахивание из history
Anonymous
потому что в первом случае у тебя активити умирает, а во втором живёт.
А как тогда сделать, чтобы я убил Activity, но Application и Сервис жили. Даже если я закрою через таску или через кнопку Back
.
ты вирус хочешь написать который бы говорил "переведи биток" или что?)
Anonymous
Alisa
Тимлид - роль, обросшая мифами и легендами. Этакий предел совершенства. "Почему же ты отказался от тимлидства?" 2 сентября в 19 по Москве Евгений Кот (Wrike) задаст этот вопрос в эфире: ▫️ Егору Толстому (JetBrains), который предпочел путь продакта, но по вечерам учит лидов в рамках Podlodka Teamlead Crew, ▫️ Вадиму Мартынову (Контур, RndTech), который посчитал карьеру программиста перспективней пути менеджера разработчиков, ▫️ и Олегу Склярову (Skyeng), который 1,5 года тимлидил на удаленке, вернулся в разработку, но сейчас вновь и.о. тимлида Поговорим, какие ожидания у каждого были на старте. Что сбылось, что нет. Чему пришлось срочно учиться - и разучиваться. Как коллеги приняли "назначение" и уход с должности. Что там по деньгам. Ты тоже сможешь подключиться к разговору и задать любой вопрос. Автору лучшего ребята обещают леща :) 📝 Подробнее о лайве
Привет! Через 15 минут начинаем лайв про тимлидство. 4 бывших лида, лещ за лучший вопрос и возможность подключиться голосом к эфиру. Забегайте))
.
Предположим да)
https://developer.android.com/guide/components/activities/recents
Anonymous
ты вирус хочешь написать который бы говорил "переведи биток" или что?)
Суть такая. Запускаю Активити, он запускает сервис. Я кликаю на кнопку и сервис загружает файл. 1000 метров Я закрываю приложение, убираю все из диспетчера, я принципиальный юзер. Затем я запускаю мое приложение и вижу что загрузка файла прошла на 40%. Вот примерно так
Anton
Можешь поставить броадкаст и слушать когда приложение убьют, и так рестартить сервис
.
Суть такая. Запускаю Активити, он запускает сервис. Я кликаю на кнопку и сервис загружает файл. 1000 метров Я закрываю приложение, убираю все из диспетчера, я принципиальный юзер. Затем я запускаю мое приложение и вижу что загрузка файла прошла на 40%. Вот примерно так
лучше делай с foreground, серьезно, гугель не поощряет когда что-то делается в бг без малейшего писка наружу, такое может быть только у системных компонентов. ну как в россии, ОПГ может быть только одно - кооператив Озеро.
Andrey
Какой жз у Сервиса? Запускаю сервис, в нем тред работает, закрываю приложение, убиваю таску. Сервис умирает...В след раз сервис работает и т.д.
если тебе нужна гарантированная работа сервиса в бэкграунде долгое время, используй foreground service, если просто какие то данные с сервера подтянуть или что то такое, то WorkManager
.
перебор.
.
хороший тон если апп чё-то делает показывать это как-то
Anton
ну это вообще.
Почему же, это самое банальное, что сразу приходит в голову. Если по какой-либо причине не хотят юзать форграунд
Anonymous
Я мож тогда не правильно понимаю. Application это основной компонент. В нем живет Activity и к примеру Service.Почеум Applicaiton умирает, если я закрываю Активити?
Anonymous
Есть же Сервис компонент
.
Я мож тогда не правильно понимаю. Application это основной компонент. В нем живет Activity и к примеру Service.Почеум Applicaiton умирает, если я закрываю Активити?
смари, когда ты жмешь бэк и смахиваешь, то ты сделал что: 1) убил активити 2) послал аппу clear from recents андроид решил что ну раз тут у нас только сервис остался то его как бы можно и грохнуть. если ты нажал home то ты сделал следующее 1) свернул активити 2) послал аппу clear from recents андроид подумал что апп тебе просто мешает на экране недавних и удалил оттуда, но таск остался жив -> активити живо -> сервис не один -> все работает
.
там неявная логика, но это то как я понимаю. работает тока на ванилле, ксяоми какойнит убьет апп и не пернет. со всем говном.
.
и херово задокументированная, логика-то
Anonymous
;D Панятна)
Данил
1. Вообще не правильно, Service может и остаться жив
Anonymous
Вообще это бред получается, явна утечка сервиса. К которому мы доступ из запущенных приложение не можем получить больше, прихолдиться заново запускать приложение
.
1. Вообще не правильно, Service может и остаться жив
покажи пример где ты смахнешь из тасков без доп. обработки и сервис останется жив
Anonymous
Короче реально логика на коленке собрана)
.
без манифеста он не запустится нихера.
dzhtv
Стоп, если из сервиса возвращаешь START_STICKY то application с сервисом перезапустится же, разве нет?
.
ты с бродкастами путаешь
Dmitry
Он будет жить при убийстве приложения?
какого приложения? того, которое стартует закачку? конечно. потому что закачка вообще в другом процессе происходит
Anonymous
Стоп, если из сервиса возвращаешь START_STICKY то application с сервисом перезапустится же, разве нет?
Нет. Алексей правильно сказал. Если свернул то активити живет где то.
Anonymous
@ioerrorle Кстати да, а почему StartSTICKY не перезапустил сервис? когда я закрыл активити? Блин Сервис это компонент, какого хера он живет благодаря активити?
Anonymous
Он же сам по себе должен жить
Anton
Сервис надо хостить
.
потому что политика гугла такая. нех под шконарём елозить
Anton
Сам он незахостится, максимум зарегестрировать бродкаст ресивер
.
Он же сам по себе должен жить
можешь попробовать кстати из контекста application запустить сервис, доложи что выйдет
.
я не пробовал
Данил
ты с бродкастами путаешь
Бред не пиши, сервис может жить и вне application если объявлена как foreground
.
вне application вообще ничерта жить не может, это нонсенс.
.
или я чего-то офигенно конкретно не знаю
Anonymous
Одно и тоже
Данил
или я чего-то офигенно конкретно не знаю
Ну да, по твоей логике тебе и пуши не должны прилетать
Данил
<service android:name=".MyFirebaseMessagingService" > <intent-filter> <action android:name="com.google.firebase.MESSAGING_EVENT" /> </intent-filter> </service>
dzhtv
Если фоновый сервис рушится, а у него флаг sticky при этом то система же рестартанет Application вместе с сервисом
Данил
Почему тогда прилетает?
Данил
Или идет обновление локации? <service android:name=".LocationUpdatesService" android:enabled="true" android:exported="true" android:foregroundServiceType="location" />
Anonymous
Почему тогда прилетает?
Потому что это GPService так работает, и он запускает приложение по манифесту
.
Почему тогда прилетает?
ну сделай аппу останов через настройки, пуши прилетать перестанут
Басюк
Привет. Есть кнопка, но бг у нее не квадратный, а другой формы, как сделать что бы клик срабатывал только на картинке а не на всей форме кнопки
Данил
ну сделай аппу останов через настройки, пуши прилетать перестанут
Кажется понял, я подумал, что ты имел ввиду, если его просто из списка приложений убрать
Anonymous
Как тогда добиться такого результата? Есть список из 10 элементов. Я кликаю на список и запускаю сервис, в котором скачивается файл. 1 минуту. Я закрываю приложение, все запущенные очищяю. Запускаю заново приложение и я должен увидеть к примеру 5% загрузки Как такое сделаьт???
dzhtv
ну сделай аппу останов через настройки, пуши прилетать перестанут
Об этом же речи не шло, лишь об удалении из списка запущенных апов
.
я вам секрет скажу, пока гугл не выкупила firebase, при закрытии всех активити пуши прекращали приходить
.
с gcm пуши всегда были
.
мы сначала сидели на fcm, отказались именно по этой причине, перешли на gcm, а потом опять.
.
смешная история.
.
сюда посмари
.
я тебе отвечаю, работать будет почти что исключительно в ванилле, про хуавеи и ксяоми можно забыть.
.
https://dontkillmyapp.com/
Anonymous
https://developer.android.com/reference/android/app/Service#onTaskRemoved(android.content.Intent)
Короче да, на SO нашел решение, гавнокод но работает. Жаль в Андроиде нет, хотя это же Андроид
Anton
Но чтоб прям постоянно и уверено грузить что-то, когда приложение мертво - смахивает на какой-то accessibility service уже