I am running foreground services in my app and I need to deremine if they running in my activity. From my searches I found that this is the option:
private fun isMyServiceRunning(serviceClass: Class<*>): Boolean {
val manager = getSystemService(Context.ACTIVITY_SERVICE) as ActivityManager
for (service in manager.getRunningServices(Int.MAX_VALUE)) {
if (serviceClass.name == service.service.className) {
return true
}
}
return false
}
but:
getRunningServices(Int): is deprecated.
So I am using one of 3 ways.
- Binding the service to the activity with onResume. But I think it a bit overkill for something small just to check if service is running.
- Make the Intent public and check if its null, but there can be some cases where the intent not null but service not running
- Check if the foreground service persistent notification is active, but this is workaround.
What is the most correct way to check if service is running?