KOTLIN_ADEPT Telegram 50
Custom Quick Settings tiles

Забавно, что являясь Android разработчиком, мне очень редко приходится решать задачи, связанные с самой платформой и ее фичами, и, думаю, я такой не один. Но недавно появилась потребность добавить свою кастомную плитку для приложения в шторку с быстрыми настройками.

Каждая такая плитка представляет из себя специальный сервис под названием TileService. Это особый вид bound сервиса, который имеет свои особенности жизненного цикла и все нюансы подробно описаны в гайде.

Проблема только в том, что нашел я этот гайд уже после того как сам разобрался, что к чему, ведь по запросу TileService отдавало все что угодно: скудную документацию, статьи подозрительного качества, но только не гайд 😒

Главное, что нужно знать, что обновлять плитку можно только в промежутке между onStartListening() и onStopListening() и по умолчанию этот промежуток соответствует поведению, когда плитка видна на экране у пользователя, что выглядит довольно логично и похоже на то, как мы подписываемся на стейт в UI, но Google почему-то рекомендует явно запрашивать listening state 🤔. Как по мне, первый способ является более удобным, но разумеется все зависит от конкретного кейса.

⚠️Однако я столкнулся с одной проблемой, само по себе взаимодействие с TileService не переводит ваше приложение в состояние foreground и вы можете столкнуться с различными ограничениями системы. В моем случае помог запуск отдельного foreground сервиса из TileService.

💬А используете ли вы данную функциональность в своих приложениях? Если да, то какие сценарии вы туда выносите?

#Android
@kotlin_adept
Please open Telegram to view this post
VIEW IN TELEGRAM
👍33👨‍💻31



tgoop.com/kotlin_adept/50
Create:
Last Update:

Custom Quick Settings tiles

Забавно, что являясь Android разработчиком, мне очень редко приходится решать задачи, связанные с самой платформой и ее фичами, и, думаю, я такой не один. Но недавно появилась потребность добавить свою кастомную плитку для приложения в шторку с быстрыми настройками.

Каждая такая плитка представляет из себя специальный сервис под названием TileService. Это особый вид bound сервиса, который имеет свои особенности жизненного цикла и все нюансы подробно описаны в гайде.

Проблема только в том, что нашел я этот гайд уже после того как сам разобрался, что к чему, ведь по запросу TileService отдавало все что угодно: скудную документацию, статьи подозрительного качества, но только не гайд 😒

Главное, что нужно знать, что обновлять плитку можно только в промежутке между onStartListening() и onStopListening() и по умолчанию этот промежуток соответствует поведению, когда плитка видна на экране у пользователя, что выглядит довольно логично и похоже на то, как мы подписываемся на стейт в UI, но Google почему-то рекомендует явно запрашивать listening state 🤔. Как по мне, первый способ является более удобным, но разумеется все зависит от конкретного кейса.

⚠️Однако я столкнулся с одной проблемой, само по себе взаимодействие с TileService не переводит ваше приложение в состояние foreground и вы можете столкнуться с различными ограничениями системы. В моем случае помог запуск отдельного foreground сервиса из TileService.

💬А используете ли вы данную функциональность в своих приложениях? Если да, то какие сценарии вы туда выносите?

#Android
@kotlin_adept

BY Kotlin Adept Notes




Share with your friend now:
tgoop.com/kotlin_adept/50

View MORE
Open in Telegram


Telegram News

Date: |

Your posting frequency depends on the topic of your channel. If you have a news channel, it’s OK to publish new content every day (or even every hour). For other industries, stick with 2-3 large posts a week. Concise It’s easy to create a Telegram channel via desktop app or mobile app (for Android and iOS): Developing social channels based on exchanging a single message isn’t exactly new, of course. Back in 2014, the “Yo” app was launched with the sole purpose of enabling users to send each other the greeting “Yo.” Click “Save” ;
from us


Telegram Kotlin Adept Notes
FROM American