服务是服务实现的基类。服务类在应用程序的主线程中运行,这可能会降低应用程序的性能。因此,IntentService是 Service 的直接子类,它的诞生是为了让事情变得更容易。IntentService 用于在后台执行某个任务。完成后, IntentService 的实例会自动终止自身。它的使用示例是从 Internet 下载某些资源。
差异
Service类使用应用程序的主线程,而 IntentService 创建一个工作线程并使用该线程运行服务。
IntentService创建一个队列,一次将一个意图传递给 onHandleIntent()。因此,实现多线程应该通过直接扩展 Service 类来实现。服务类需要使用 stopSelf() 手动停止。同时,当队列中没有意图时,IntentService 会自动停止。
IntentService 实现了返回 null 的 onBind()。这意味着默认情况下无法绑定 IntentService。
IntentService 实现了将 Intent 发送到队列和 onHandleIntent() 的 onStartCommand()。简而言之,使用 IntentService 只需要做两件事。首先,实现构造函数。其次,实现 onHandleIntent()。对于其他回调方法,需要调用 super 才能正确跟踪。
简而言之,Service 是开发人员设置后台操作的更广泛实现,而 IntentService 可用于“即发即忘”操作,负责后台线程的创建和清理。
从文档:
服务 服务是一个应用程序组件,表示应用程序希望在不与用户交互的情况下执行更长时间运行的操作,或者提供供其他应用程序使用的功能。
IntentService IntentService 是根据需要处理异步请求(表示为 Intent)的服务的基类。客户端通过 startService(Intent) 调用发送请求;该服务根据需要启动,依次使用工作线程处理每个 Intent,并在工作用完时自行停止。
取自http://www.coderzheaven.com/2013/07/12/main-differences-service-intent-service/
| 归档时间: |
|
| 查看次数: |
3542 次 |
| 最近记录: |