IntentService 作为 Service 的子类,它能够将我们需要的操作放到 工作线程 进行处理。通过重写
onHandleIntent()方法,此方法会自动处理我们发出的每一个 Intent,在工作线程中执行任务。
前言
众所周知,但我们想要启动一个 Service,需要在另一个组件中调用 startService(),从而调用 Service 中的 onStartCommand() 方法.
Service 拥有自己的生命周期,并可以在后台无限期的运行(和 Windows 中的 Service 很像)。
注意1:即使是调用者(启动服务的组件)被销毁,都不能影响 Service 的运行。我们需要在另一个组件中调用 stopService() 或者在服务中调用 stopSelf() 来停止服务。
注意2:我见到到一些 Android 开发人员,因为对 Service 不熟悉,想当然的认为每当我们启动了一个 Service,也就意味了开了一个子线程,这种想法是错误的。
实际情况是:默认情况下,服务和服务声明的应用运行在同一个进程中,而且运行在主线程中。所以说,如果 Service 需要处理一些耗时操作,我们需要在 Service 中开启一个工作线程来处理这些任务。
这里有两种 Service 供我们使用:


