First of all, I would like to thank you for making quality and easy to understand content, I got a question about notifications on android 12 and above. Why is it taking 5-7 seconds to show the notification for the first time? I am building a music player, and this is quite irritating. Thanks for the response
Notifications are delayed to reduce spam to the user for services that finish their work quickly. That's why your notification doesn't show right away. It started somewhere around API 30 or so and i think the delay is 5 or 10 seconds. You can get rid of this if you set your foregroundServiceType e.g. to phoneCall - a phoneCall should immediately show a notification, and so the notification is not delayed.
Hey Phil, that was a great introduction into ForegroundServices. However I would like to know how it’s possible to check if the service is running after the app has been closed? So I can block most of the UI and automatically start a ViewModel to monitor the ForegroundService
Note: Apps don't need to request the POST_NOTIFICATIONS permission in order to launch a foreground service. However, apps must include a notification when they start a foreground service, just as they do on previous versions of Android.
Yes you don't need it to launch one, but if your use case requires a foreground service, it's very likely it would be better UX to show a notification to the user
@@PhilippLackner spotify never send me a push notification to run the tracks on my device, I only see foreground task on the notification section, when I swipe down( left side)
But you need POST_NOTIFICATIONS to display the notification that must be included with the service, right? Because in such case then yes, it is needed, not directly, but it is. Or does the service work anyways?
if you rotate the phone screen, then updating coordinates in the service becomes very frequent. The specified interval does not solve the problem. And, if you send these coordinates to the server, then the traffic volume and battery consumption are very high
Thanks for this cool well explained video. I need to implement this, but, I need the service to be launched when the phone boots, and I need to listen for incomming calls. Can I do that in this service ? I mean ... have a bradocastreceiver inside this service and launch this service when the phone just boot. Thanks !
I have a one doubt philipp uses Service class that run default on "main thread" when we perform some long-running operation our ui should freeze lead to "ANR" error, So instead of simple Service class we can use IntentService, or JobScheduler .
Hi Philip I watch your videos and it really helps me to learn new things and even crack interviews too. But only the thing is missing android security e.g SSL Pinning, Key Pinning & Hash Pinning there is no any good resource to learn from. Hope you will create an video soon with these topics. Thanks
Hi Philip! First of all, thank you for this great playlist and the video. However, I didn't understand the last part you mentioned. From what I understand, you are suggesting not to place all of the code inside the Foreground Service, but rather keep it in other classes like ViewModels, etc. But If the app gets killed, all of these classes will be destroyed. I didn't quite grasp what you were trying to convey.
Thanks for the video. Can you say something regarding starting foreground service while the app is in the background? For Bluetooth apps do we need to use Companion Device Manager as mentioned in official documentation or is there some other way to start foreground service?
I am curious how the interaction should be structured between a data layer, or if you can have start() in the service modify state variables to force recomposition? I suppose I am lost in the concepts for the architecture if wanting to tie in using a viewmodel.
Hi Philipp, thanks for the great content. What I ask myself and already ran into when using services: Whats the best way for communication or interaction between service and viewmodel? As i know both should't know eachother. So do I need a class between and if so, the class would just pass the data through. Sounds unneccessary...
This was a lot of help. I struggled for a little to figure out the changes needed to get API 34 requirements so the code would work. I am also a little confused on how I would go about updating notification. if wanting to implement a timer. My use case is trying to make a 'download bar', to indicate how far along I am in a download. I am still a little stuck, but this helped me quite a bit.
Hey, I wanted to know why it's better to use foreground services for the same music player? Why not just use Work Manager, which also has setForeground and seems to do the same thing?
What if we want to communicate with a service, get states inside it, etc.. only for a specific Jetpack Compose screen in our application and not for the whole activity that screen is in?
What should we use, WorkManager or Services? and what are the benefits of them? I personally would like to use WorkManager because it support Coroutines What's your opinion?
Bro i need to track user location using geofencing in background so that when he leaves particular loaction another service should eb triggered and then another i kind of need them to get triggered in a chained reaction manner and all of this should be done in background even when the appi snot opened please tell em how to do thithis
Goal : - Need to run a service in the background for 20-40 mins every 2 hour (Battery usage no issue) Correct me - if i m wrong : - WorkManagers workers thread has a hard limit of 10 minutes, which defeat the purpose of long running task in the background - I mean for short running repeated task its ok but for long running repeated task it doesn't work - As per my knowledge the best approach to run a long running repeated task is using foreground service - But some task doesn't need user interaction & some long running tasks doesn't need a foreground service ----> My question to you is what is the alternative ??? ----> To run the above task what options are available ???
This video has helped me a lot in adding foregroundService to my midi player app. Thanks! I still struggle with the notification behavior when the app is closed by the user. As you mentioned at the end of the video, the app remains fully functional and can be controlled through the notification. But when I relaunch the app it opens a second instance. Also, when I click anywhere on the notification while the app is still open, it directs me back to the app which is great, but when the app has been closed clicking on the notification (other than the designated action buttons) does not relaunch the app. Sorry for the long question but do you have a pointer on that issue?
19:38 - I am wondering if the process was actually destroyed, because if you try log some values in Logcat, you will see that there's no --- PROCESS ENDED (19429) --- message when you stop the service. The app looks like it still runs in the background which might be bad in terms of potential memory leaks.
When not geting permission for android 13+ service is running in background without permission on me . Also already running correctly on +26 api devices without notificationChannel. Why we putting channels then ? How remove notification below android 13. Any trick ?
Does the foreground service stop , when we kill the app ? Or do we need to handle it by ourselves. ( For eg :- when we kill spotify , the music stops playing in the background - is it handled by the OS itself or its a dev task )
If the process is killed, all of it dies. However, just "killing" the app by swiping it from the recently used apps will keep the process alive if there's a foreground service active. Activities and ViewModels might die though.
Hi I need to run an app as a server, it needs to be a TCP based server. I have built the server with kotlin, it runs with foreground service. It works fine, I send messages via the phone IP. Can this app run in foreground forever? The idea is to have the phone on at all times. and it should basically act as a server
You should have mentioned the did not start in time exception that will be thrown if startForeground was not called in 5 seconds after starting the service and the crash that you will have if you pressed the stop service button before the appearance of the service notification. It’s the worst thing made in android
hey Phil I have added all the permissions and services but in android 13 the service get's terminated after 3-4 minutes can you pleas provide some solutions how to fix this in android 13 In lower version of android foreground service run's forever until we intentionally kill that
im from brazil and i watch with subtitle ..Your channel is the best on UA-cam on this subject...thank you.
First of all, I would like to thank you for making quality and easy to understand content, I got a question about notifications on android 12 and above. Why is it taking 5-7 seconds to show the notification for the first time? I am building a music player, and this is quite irritating. Thanks for the response
Im from Egypt ..Your channel is the best on UA-cam on this subject...thank you.
😍😍
For API 34, the service in the manifest needs to be
and add permission
Hope this helps someone!
thank you sooo muchhh!!
I'm handling foregroundServiceType while migrating to Android 14 recently. Thanks for the clear explaination :)
Notifications are delayed to reduce spam to the user for services that finish their work quickly. That's why your notification doesn't show right away. It started somewhere around API 30 or so and i think the delay is 5 or 10 seconds. You can get rid of this if you set your foregroundServiceType e.g. to phoneCall - a phoneCall should immediately show a notification, and so the notification is not delayed.
PLEASE, Make a video on modifying ripple effect, shape, and colors of buttons, iconbuttons and navigationbaritem. 🙏
Hey Phil, that was a great introduction into ForegroundServices. However I would like to know how it’s possible to check if the service is running after the app has been closed? So I can block most of the UI and automatically start a ViewModel to monitor the ForegroundService
Note: Apps don't need to request the POST_NOTIFICATIONS permission in order to launch a foreground service. However, apps must include a notification when they start a foreground service, just as they do on previous versions of Android.
Yes you don't need it to launch one, but if your use case requires a foreground service, it's very likely it would be better UX to show a notification to the user
@@PhilippLackner spotify never send me a push notification to run the tracks on my device, I only see foreground task on the notification section, when I swipe down( left side)
But you need POST_NOTIFICATIONS to display the notification that must be included with the service, right? Because in such case then yes, it is needed, not directly, but it is. Or does the service work anyways?
The link to the permissions tutorial wasn't added. I'm guessing you forgot as you predicted.😊. kindly point me to it. Thanks, Nice work.
if you rotate the phone screen, then updating coordinates in the service becomes very frequent. The specified interval does not solve the problem. And, if you send these coordinates to the server, then the traffic volume and battery consumption are very high
Thanks for this cool well explained video. I need to implement this, but, I need the service to be launched when the phone boots, and I need to listen for incomming calls. Can I do that in this service ? I mean ... have a bradocastreceiver inside this service and launch this service when the phone just boot. Thanks !
I have a one doubt philipp uses Service class that run default on "main thread" when we perform some long-running operation our ui should freeze lead to "ANR" error, So instead of simple Service class we can use IntentService, or JobScheduler .
Hi Philip
I watch your videos and it really helps me to learn new things and even crack interviews too. But only the thing is missing android security e.g SSL Pinning, Key Pinning & Hash Pinning there is no any good resource to learn from. Hope you will create an video soon with these topics. Thanks
Hi Philip! First of all, thank you for this great playlist and the video. However, I didn't understand the last part you mentioned. From what I understand, you are suggesting not to place all of the code inside the Foreground Service, but rather keep it in other classes like ViewModels, etc. But If the app gets killed, all of these classes will be destroyed. I didn't quite grasp what you were trying to convey.
watch full video 21:00
Holy F thank you, I didn't know you needed to add a channel from de app class, was looking at the android guides like crazy
Thanks for the video.
Can you say something regarding starting foreground service while the app is in the background? For Bluetooth apps do we need to use Companion Device Manager as mentioned in official documentation or is there some other way to start foreground service?
These are very interesting videos, keep up the good work. Thank you very much
I have a question about bound service can it be replaced with coroutine ?
I hope you make an example about it
I am actully enjoying and learning from this playlist
And you content is ❤
I am curious how the interaction should be structured between a data layer, or if you can have start() in the service modify state variables to force recomposition? I suppose I am lost in the concepts for the architecture if wanting to tie in using a viewmodel.
Hi Philipp, thanks for the great content. What I ask myself and already ran into when using services: Whats the best way for communication or interaction between service and viewmodel? As i know both should't know eachother. So do I need a class between and if so, the class would just pass the data through. Sounds unneccessary...
This was a lot of help. I struggled for a little to figure out the changes needed to get API 34 requirements so the code would work. I am also a little confused on how I would go about updating notification. if wanting to implement a timer.
My use case is trying to make a 'download bar', to indicate how far along I am in a download. I am still a little stuck, but this helped me quite a bit.
Hey what changes did u make in code ?
You should have mentioned the FGS TaskManager where you can also stop a service
Hey, I wanted to know why it's better to use foreground services for the same music player? Why not just use Work Manager, which also has setForeground and seems to do the same thing?
Thank you😊,what's a greet lesson
You just saved my whole life thx!!
would u please make a short tutorial on how to enable and setup VPN mode in a kotlin app?
Thanks for these great videos philipp!
what different between thread and service ? .When do we use service in android ?
Thanks, that is very clear.
Great video, really enjoyed it and learned from it!!
Thank you. Good job! I have a question...I created restart function . I call stop and start service...and it's doesn't work as expected...why?)
Nice work. Just one question. how to deal with mutable flag/ immutable flag if my minimum sdk version is..24 ?
What if we want to communicate with a service, get states inside it, etc.. only for a specific Jetpack Compose screen in our application and not for the whole activity that screen is in?
Please make a video on how to save files locally and especially where to place the code to do that
great video as usual!
Fantastic, What a great explanation 🔥🔥
Give this man a shield 🛡️
Thank you! Great work like always :)
Amazing content as always!
How about a music player foreground service?
Hi @4ytonly did you got Any solution for this?
Keep em coming
thank you for your tutorials !!!
question: what is the service type for a vpn service ?
What should we use, WorkManager or Services?
and what are the benefits of them?
I personally would like to use WorkManager because it support Coroutines
What's your opinion?
Different use cases, watch the video 😄
@@PhilippLackner oh, better to make a short video about that😉
You can use coroutines inside the Service - why not?
@@igorkonyukhov497 Thank you❤️
Thank you that was an amazing video you have made!
Amazing! Thank you bro ❤
Great videos!
Thanks alot 🤩🤩
We love this series brooo make more video's ASAP 🫡
Bro i need to track user location using geofencing in background so that when he leaves particular loaction another service should eb triggered and then another i kind of need them to get triggered in a chained reaction manner and all of this should be done in background even when the appi snot opened please tell em how to do thithis
Greetings from Hamburg, Germany! :)
Thank you a lot!❤️
you are an android god
Close!
True. If God would explain the world
I agree
He is an Agi
From the Activity, can't you call stopService() instead of startService() with STOP action?
Goal :
- Need to run a service in the background for 20-40 mins every 2 hour (Battery usage no issue)
Correct me - if i m wrong :
- WorkManagers workers thread has a hard limit of 10 minutes, which defeat the purpose of long running task in the background
- I mean for short running repeated task its ok but for long running repeated task it doesn't work
- As per my knowledge the best approach to run a long running repeated task is using foreground service
- But some task doesn't need user interaction & some long running tasks doesn't need a foreground service
----> My question to you is what is the alternative ???
----> To run the above task what options are available ???
ๅ🎉+=%%±66
😅😢😢😢😢😢😢😢😢😢😢😢😢
please provide something for storage related task such as reading files, writing files etc.
Thank you !
Thanks for everything ❤❤❤❤❤
Please make a video about MediaSessionService.
You didn't talk about how the Doze mode affect the services
This video has helped me a lot in adding foregroundService to my midi player app. Thanks! I still struggle with the notification behavior when the app is closed by the user. As you mentioned at the end of the video, the app remains fully functional and can be controlled through the notification. But when I relaunch the app it opens a second instance. Also, when I click anywhere on the notification while the app is still open, it directs me back to the app which is great, but when the app has been closed clicking on the notification (other than the designated action buttons) does not relaunch the app. Sorry for the long question but do you have a pointer on that issue?
If you always want to open a specific page after clicking it, you need to make the pending intent trigger a deep link
Is there any available promo code for your courses ?
19:38 - I am wondering if the process was actually destroyed, because if you try log some values in Logcat, you will see that there's no --- PROCESS ENDED (19429) --- message when you stop the service. The app looks like it still runs in the background which might be bad in terms of potential memory leaks.
The process stays alive, just the activity is destroyed. That's intended
Please can you suggest how we can make service without activity with boot reciever
Most of the OEM(Vivo, Xiomi,etc..) quit the service even if it is a foreground service with notification. do you have any idea how to handle this ??
please make video on api level 34 with service because foreground service crashes on api level 34 .
My Problem: When the phone enters Doze mode, the foreground service stops working.
How to prevent that?
dear where u made the startServices in my app not resolved
Can we start an activity automatically using foreground service, when app is in background in latest android?
Thanks a lot, bro !
Hi Bro,
Why does Flutter not support foreground services for Android 11 and 12 ?
When not geting permission for android 13+ service is running in background without permission on me .
Also already running correctly on +26 api devices without notificationChannel. Why we putting channels then ?
How remove notification below android 13. Any trick ?
Does the foreground service stop , when we kill the app ? Or do we need to handle it by ourselves. ( For eg :- when we kill spotify , the music stops playing in the background - is it handled by the OS itself or its a dev task )
If the process is killed, all of it dies. However, just "killing" the app by swiping it from the recently used apps will keep the process alive if there's a foreground service active. Activities and ViewModels might die though.
Nice video just review the information
Great
12:55 philip u forgot to link the permission video❤
Hi I need to run an app as a server, it needs to be a TCP based server. I have built the server with kotlin, it runs with foreground service. It works fine, I send messages via the phone IP. Can this app run in foreground forever? The idea is to have the phone on at all times. and it should basically act as a server
Can you show me detail of MainActivity code. You didnt show the entire code. Please
dearr i am using the andirod 9 permision not got it
Sign of a great instructor: using past mistakes as learning opportunities ... 👍
you save me! you are god!
can i WRITE My service class in kotlin but my other classes are in java?
You should have mentioned the did not start in time exception that will be thrown if startForeground was not called in 5 seconds after starting the service and the crash that you will have if you pressed the stop service button before the appearance of the service notification. It’s the worst thing made in android
This means we'd have to disable the stop button unless it's already running, problem solve init?
How can i show a push notification when my app is on the foreground?
you didnt add permissions in android basics playlist
Why my foreground service stope in the night like given latitude or longitude with gap bt when I used device thn continuously running
hey Phil I have added all the permissions and services but in android 13 the service get's terminated after 3-4 minutes
can you pleas provide some solutions how to fix this in android 13
In lower version of android foreground service run's forever until we intentionally kill that
XIaomi device does not dismiss lockscreen when opening Activity from background (VOIP Call) please help me out regarding this point
I recent use Xiaomi redmi note series but i throw it becoz of poor System opt. I am now back using OPPO and no regrets
Greate!
Git Link ??
Hy I’m facing one issue from many times
Now whom interesting to start the android journey . U are role like google map…
Link of the Permisson Handling he mentioned in his video
ua-cam.com/video/D3JCtaK8LSU/v-deo.htmlsi=w9D6ZNeGpfsnSJ6X
Fan fact: This is 666 th video on this channel
First
12:45
Permission video link-
ua-cam.com/video/D3JCtaK8LSU/v-deo.htmlfeature=shared
I'm From BRA