android startService onStartCommand 多次回调

/**
     * Request that a given application service be started.  The Intent
     * should contain either contain the complete class name of a specific service
     * implementation to start or a specific package name to target.  If the
     * Intent is less specified, it log a warning about this and which of the
     * multiple matching services it finds and uses will be undefined.  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 {@link android.app.Service#onStartCommand} 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 {@link #bindService}: it requires the service to remain
     * running until {@link #stopService} 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 {@link #stopService} 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 {@link SecurityException} if you do not
     * have permission to start the given service.
     *
     * @param service Identifies the service to be started.  The Intent must be either
     *      fully explicit (supplying a component name) or specify a specific package
     *      name it is targetted to.  Additional values
     *      may be included in the Intent extras to supply arguments along with
     *      this specific start call.
     *
     * @return If the service is being started or is already running, the
     * {@link ComponentName} of the actual service that was started is
     * returned; else if the service does not exist null is returned.
     *
     * @throws SecurityException  
     *
     * @see #stopService
     * @see #bindService
     */
    public abstract ComponentName startService(Intent service);

你可能感兴趣的:(Android,Android,Service,Android,Schedule)