Can we have multiple instance of a Service in Android ? I want a service which can make phone silent on a specific time and I want to re use that service to make the phone in vibrate mode in specific time. So basically if I can make the service run multiple times then there is no need to create another service to set phone in vibrate mode. Also if we can run multiple instance then please explain how to stop it. Any code hint will help a lot.
Can we have multiple instance of a Service in Android ?
No. You can have multiple subclasses of
Service, but any given subclass of
Service will have precisely 0 or 1 instances at any given moment.
I want a service which can make phone silent on a specific time and I want to re use that service to make the phone in vibrate mode in specific time.
You should not be using a service for any of that. Use
AlarmManager and a
I do not think the service can be used for a such purpose. Service has to provide some functionality, but only one meaning, not for several different purposes. It’s better to create additional service for that to keep code simple and clear.
Your question doesn’t quite make sense. It sounds like what you want to do is have multiple instances of the same service running and doing different things at once. But your question fundamentally hinges on the fact that services shouldn’t do things on a long time scale. Instead, what should happen is that they receive an intent, perhaps spawn a thread or something, and then stop hanging around. Remember that a Service still runs on the main thread, it’s not backgrounded, so you shouldn’t be performing long running things there anyway. What you might want to look at is an IntentService, that coordinates with your Activities through use of intents that control what should be happening.