Service
A service is an application component that
can run some long running task in the background without the need for a user
interface. Some other application component can start the service and this
service will then keep on running even if the user switches to another
application.
There are two types of service
components:
1.
Started
Service
2.
Bounded Service
Started
Service:
This service
is started by another application component. Once started it keeps running
until someone stops the service. This type of service provides several
callbacks which is the topic of this tutorial.
Bounded
Service:
A service is bound when another application component
invokes the bindService method. Service binding is used to perform client-server like
communication between the service and the caller. These invocations can be
performed between different processes as well. Multiple callers can bind to a
service. The service stays active until there is atleast one caller bound to
the service.
Life Cycle of Started Service
When You are launching any service for first time , on that time it will call onCreate(). If the service is already launched , then from the second time onStartCommand() will call, it won't call onCreate().For started services, there are two additional major modes of operation they can decide to run in, depending on the value they return from onStartCommand(): START_STICKY
is used for services that are explicitly started and stopped as needed, while START_NOT_STICKY
or START_REDELIVER_INTENT
are used for services that should only remain running while processing any commands sent to them. Once the onDestroy() will called, the service will terminate.
Life Cycle of Bounded Service
Clients can also use Context.bindService()
to obtain a persistent connection to a service. This likewise creates the service if it is not already running (calling onCreate()
while doing so), but does not call onStartCommand(). The client will receive the IBinder
object that the service returns from its onBind(Intent)
method, allowing the client to then make calls back to the service. The service will remain running as long as the connection is established (whether or not the client retains a reference on the service's IBinder).
No comments:
Post a Comment