安卓继承Service类_

    如上所述,使用IntentService类将简化启动服务的实现。然而,如果需要让服务处理多线程(取代使用工作队列处理启动请求),则可以继承Service类来处理各个Intent.
    作为对比,下面通过实现Service类来完成与实现IntentService类完全相同的任务。对于每次启动请求,它使用工作线程来执行任务,井且每次处理一个请求。

    继承Service类
    如上所示,这比使用IntentServi增加了许多代码。
    然而,由于开发人员自己处理onStartCommandO方法调用,可以同时处理多个请求。这与示例代码不同,但是如果需要。就可以为每次请求创建一个新线程井且立即运行它们(避免等待前一个请求结束)。
    onStartCommandO方法必须返回一个整数。该值用来描述系统停止服务后如何继续服务(如前所述,IntentService默认实现已经处理了这些,开发人员也可以进行修改)。onStartCommand0方法返回值必须是下列常t之一。
    START NOT STICKY如果系统在onStartCommandO方法返回后停止服务,不重新创建服务。除非有Pendinglntent要发送。为避免不在不需要的时候运行服务,这是最佳选择。
    START STICKY如果系统在。nStartCommandO方法返回后停止服务,重新创建服务并调用onStartCommandO方法,但是不重新发送最后的Intent:相反,系统使用空Intent调用。nStartCommandO方法。除非有Pendinglntent来启动服务,此时,这些Intent会被发送。这适合多媒体播放器(成者类似服务),它们不执行命令但是无限期运行并等待工作。
    START REDELIVER INTENT如果系统在onStartCommandO方法返回后停止服务,重新创建服务井使用发送给服务的最后Intent调用onStartCommandO方法,全部Pendinglntent依次发送。这适合积极执行应该立即恢复工作的服务,如下载文件。