Request that a given application service be started. The Intent can either contain the complete class name of a specific service implementation to start, or an abstract definition through the action and other fields of the kind of service to start. If this service is not already running, it will be instantiated and started (creating a process for it if needed); if it is running then it remains running.
Every call to this method will result in a corresponding call to the target service's onStartCommand(Intent, int, int)
method, with the intent given here. This provides a convenient way to submit jobs to a service without having to bind and call on to its interface.
Using startService() overrides the default service lifetime that is managed by bindService(Intent, ServiceConnection, int)
: it requires the service to remain running until stopService(Intent)
is called, regardless of whether any clients are connected to it. Note that calls to startService() are not nesting: no matter how many times you call startService(), a single call to stopService(Intent)
will stop it.
The system attempts to keep running services around as much as possible. The only time they should be stopped is if the current foreground application is using so many resources that the service needs to be killed. If any errors happen in the service's process, it will automatically be restarted.
This function will throw SecurityException
if you do not have permission to start the given service.
Parameters
service | Identifies the service to be started. The Intent may specify either an explicit component name to start, or a logical description (action, category, etc) to match an |
Returns
- If the service is being started or is already running, the
ComponentName
of the actual service that was started is returned; else if the service does not exist null is returned.
Throws
| SecurityException |
0 件のコメント:
コメントを投稿