Как стать автором
Обновить

Комментарии 27

Хм. То есть слушать музыку с фоновым приложением онлайн нельзя будет не только на ютубе но и вообще нигде?

revanced решает эту проблему

Можно, если разработчик приложения реализовал это как полагается. Ниже в комментах есть пример того, как надо.

Думаешь vk проплатила гуглу за эту правку?

Да не, я с точки зрения пользователя размышлял. У меня небольшой проект есть, в профиле можно посмотреть статьи, там у пользователей один из самых частых запросов сделать ютуб играющим на фоне. Вот я от этой новости и подумал - стоит ли заморачиваться и разматывать или сразу не шмогла сделать. Но, как уже подсказали, паниковать рано, продолжаем работать.

Ютюб прекрасно играет на фоне

На мобиле в браузере и без премиума?

Да. В firefox все работает. Если есть какие-то проблемы, то там же есть плагин для ютуба.

Эммм. Я в общем то про хромиум говорил но ок, согласен, из обсуждения это было не очевидно.

P. S. Думаю, изменение правильное: нечего грузить девайс и сеть, если приложение сейчас не используется.

Это да, но UnknownHostException - это странное решение. Поленились кинуть специфический ексепшн, теперь клиентский код не может отличить этот кейс от остальных сетевых проблем. Ну, не знаю.

Соглашусь. Предположу, что могли сделать для обратной совместимости, чтобы не посыпались приложения, в которых обработаны конкретные сетевые Exception-ы, а иначе - краш

Ну решается по идее просто - `public class SomeNewNetworkException extends IOException {...}` и все фоновые обработчики выхватят `IOException` что вполне себе нормально. Просто в таком случае разрабы увидят в логах именно `SomeNewNetworkException` и подправят реализацию. А с их решением проблема мимикрирует под другие, что как-бы так себе дизайн.

Там не UnknownHostException, а "Typically, an UnknownHostException or other socket-related IOException".
Сеть, судя по всему, просто на другом уровне отключается.

Ну да, но все равно путает. Сеть, хост, стек ведь может быть в порядке. Просто "нельзя".

Линуса на них нет.

Вообще-то если ваше приложение должно работать c сетью в фоне, оно должно это делать не через активность, а с помощью службы.
Для чего её нужно зарегистрировать в манифесте:
<service android:name=".NetworkService" android:exported="false" android:enabled="true" android:foregroundServiceType="dataSync" />

protected void StartService() { Intent serviceIntent = new Intent(this, NetworkService.class); // Запуск службы в фоновом режиме, startForegroundService(serviceIntent); } protected void BindService() { // Создание Intent для привязки службы Intent serviceIntent = new Intent(this, NetworkService.class); // Привязка к NetworkService Log.i(TAG, "try bindService..."); boolean bindResult = bindService(serviceIntent, m_Connection, Context.BIND_AUTO_CREATE); Log.i(TAG, "bindService result: " + bindResult); }

Собственно, в вебоси (LG webOS) давно именно так. И YouTube, и Кинопоиск, и другие сервисы, где есть функция "включить видео со смартфона" именно так и работают.

Никто не утверждал, что с сетью нужно работать "через активность". Думаю всем с мало-мальским опытом понятно как правильно. Тут речь о том, что есть смысл проверить места, где запросы в фоне летят почему-то вне WorkManager или Foreground Service и поправить

Т.е. приложения, которые раньше могли работать нестабильно, перестанут работать совсем (и будут починены автором, если повезёт?)

К комментариям выше

При беглом взгляде кажется, что:

UnknownHostException вместо SomeNewNetworkException - это просто сайд-эффект более глубокого ограничения Activity для работы с сетью.

После обновления до 15 Android смартфон перестал в фоне воспроизводить Интернет радио через ~20 сек после гашения экрана. Проверено на нескольких приложениях, тема активно обсуждалась пользователями на 4PDA - решения так и не найдено, кроме отката на 14 -13 Android...

У меня по тому же принципу уведомления из мессенджеров перестают приходить. Тебе вроде написали, но узнаешь ты это только включив дисплей на посмотреть время. Странно это всё.

Не, подобная фишка у меня работает. Может - потому, что сообщения дублируются на смарт-часы Huawey, соответствующее приложение которых работает на телефоне. Но почему я радио ни на одном приложении теперь не могу слушать в дороге, как раньше???

Сейчас Android 15 активно появляется у пользователей.

Не совсем понял. Актуальная версия Android - 16.

Доля 15-го, по-идее, наоборот должна сокращаться...

Анонс Android 16 был только 10 июня этого года. То есть, скорее всего, в продаже еще нет ни одного девайса с этой ОС

Возможно, у меня парадокс выжившего. Последние 4 смартфона - Pixel-и. Пишу этот комментарий с Pixel 7 с Android 16.

Возможно только пиксели получили стабильные релизы 16 на текущий момент. Пишу с девятого пикселя с Android 16, получил обновление в день анонса.

Зарегистрируйтесь на Хабре, чтобы оставить комментарий

Публикации