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.
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?
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 !
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
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 .
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
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.
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.
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 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
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
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.
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?
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...
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?
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 ?
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?
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?
Hello Sir, I’m an aspiring Android developer working on a multi-module Jetpack Compose stopwatch app. I’m using a foreground service to manage stopwatch logic and display a persistent notification. However, the app gets killed by Android after a few minutes when I put running stopwatch in the background, causing the stopwatch to stop prematurely. Could you please suggest a possible solution to resolve this issue? please help. Please help.
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 ???
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
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
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?
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.
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
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
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.
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?
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 !
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
I'm handling foregroundServiceType while migrating to Android 14 recently. Thanks for the clear explaination :)
Im from Egypt ..Your channel is the best on UA-cam on this subject...thank you.
😍😍
أزيك ياصاحبي،،
Egypt is a very beautiful country with good people and I would like to come and visit it....Your brother from Mansoura
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 .
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
For API 34, the service in the manifest needs to be
and add permission
Hope this helps someone!
thank you sooo muchhh!!
PLEASE, Make a video on modifying ripple effect, shape, and colors of buttons, iconbuttons and navigationbaritem. 🙏
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
you are an android god
Close!
True. If God would explain the world
I agree
He is an Agi
How about a music player foreground service?
Hi @4ytonly did you got Any solution for this?
what different between thread and service ? .When do we use service in android ?
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 ?
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 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
Great video, really enjoyed it and learned from it!!
Thanks for these great videos philipp!
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
I have a question about bound service can it be replaced with coroutine ?
I hope you make an example about it
You should have mentioned the FGS TaskManager where you can also stop a service
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
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?
Thank you! Great work like always :)
would u please make a short tutorial on how to enable and setup VPN mode in a kotlin app?
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...
Thank you
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❤️
These are very interesting videos, keep up the good work. Thank you very much
dear where u made the startServices in my app not resolved
great video as usual!
Thanks, that is very clear.
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 ?
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?
Amazing content as always!
Thank you !
You just saved my whole life thx!!
Thank you that was an amazing video you have made!
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?
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 ??
Fantastic, What a great explanation 🔥🔥
Hello Sir, I’m an aspiring Android developer working on a multi-module Jetpack Compose stopwatch app. I’m using a foreground service to manage stopwatch logic and display a persistent notification. However, the app gets killed by Android after a few minutes when I put running stopwatch in the background, causing the stopwatch to stop prematurely. Could you please suggest a possible solution to resolve this issue? please help. Please help.
Thank you a lot!❤️
Please make a video on how to save files locally and especially where to place the code to do that
Give this man a shield 🛡️
We love this series brooo make more video's ASAP 🫡
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?)
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
😅😢😢😢😢😢😢😢😢😢😢😢😢
I am actully enjoying and learning from this playlist
And you content is ❤
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
Thank you😊,what's a greet lesson
dearr i am using the andirod 9 permision not got it
You didn't talk about how the Doze mode affect the services
12:55 philip u forgot to link the permission video❤
Amazing! Thank you bro ❤
please make video on api level 34 with service because foreground service crashes on api level 34 .
Thanks alot 🤩🤩
From the Activity, can't you call stopService() instead of startService() with STOP action?
My Problem: When the phone enters Doze mode, the foreground service stops working.
How to prevent that?
Greetings from Hamburg, Germany! :)
Great videos!
Please make a video about MediaSessionService.
Thanks for everything ❤❤❤❤❤
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 ?
thank you for your tutorials !!!
question: what is the service type for a vpn service ?
Nice work. Just one question. how to deal with mutable flag/ immutable flag if my minimum sdk version is..24 ?
Please can you suggest how we can make service without activity with boot reciever
Is there any available promo code for your courses ?
please provide something for storage related task such as reading files, writing files etc.
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
Keep em coming
Why my foreground service stope in the night like given latitude or longitude with gap bt when I used device thn continuously running
Great
How can i show a push notification when my app is on the foreground?
Nice video just review the information
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
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
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.
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?
can i WRITE My service class in kotlin but my other classes are in java?
Can you show me detail of MainActivity code. You didnt show the entire code. Please
you didnt add permissions in android basics playlist
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
you save me! you are god!
Greate!
Git Link ??
Hy I’m facing one issue from many times
Sign of a great instructor: using past mistakes as learning opportunities ... 👍
Fan fact: This is 666 th video on this channel
12:45
Permission video link-
ua-cam.com/video/D3JCtaK8LSU/v-deo.htmlfeature=shared
Link of the Permisson Handling he mentioned in his video
ua-cam.com/video/D3JCtaK8LSU/v-deo.htmlsi=w9D6ZNeGpfsnSJ6X
Now whom interesting to start the android journey . U are role like google map…
First
I'm From BRA