IntentService和Service的区别?
2017-02-05 20:23
323 查看
从两方面描述:
第一:简单描述一下Service
Service是用于后台服务的,当应用程序被挂到后台的时候,为了保证应用某些组件仍然可以工作而引入了Service这个概念。
那么这里面要强调的是Service不是独立的进程,也不是独立的线程,它是依赖于应用程序的主线程的,也就是说,在更多时候不建议在Service中编写耗时的逻辑和操作,否则会引起ANR,为了解决这样的问题,引入了IntentService
第二:简单描述一下IntentService
IntentService是继承Service的,那么它包含了Service的全部特性,当然也包含service的生命周期。
那么与service不同的是,IntentService在执行onCreate操作的时候,内部开了一个线程,去执行耗时操作
IntentService:异步处理服务,新开一个线程:handlerThread在线程中发消息,然后接受处理完成后,会清理线程,并且关掉服务。
IntentService有以下特点:
(1) 它创建了一个独立的工作线程来处理所有的通过onStartCommand()传递给服务的intents。
(2) 创建了一个工作队列,来逐个发送intent给onHandleIntent()。
(3) 不需要主动调用stopSelft()来结束服务。因为,在所有的intent被处理完后,系统会自动关闭服务。
(4) 默认实现的onBind()返回null
(5) 默认实现的onStartCommand()的目的是将intent插入到工作队列中
第一:简单描述一下Service
Service是用于后台服务的,当应用程序被挂到后台的时候,为了保证应用某些组件仍然可以工作而引入了Service这个概念。
那么这里面要强调的是Service不是独立的进程,也不是独立的线程,它是依赖于应用程序的主线程的,也就是说,在更多时候不建议在Service中编写耗时的逻辑和操作,否则会引起ANR,为了解决这样的问题,引入了IntentService
第二:简单描述一下IntentService
IntentService是继承Service的,那么它包含了Service的全部特性,当然也包含service的生命周期。
那么与service不同的是,IntentService在执行onCreate操作的时候,内部开了一个线程,去执行耗时操作
IntentService:异步处理服务,新开一个线程:handlerThread在线程中发消息,然后接受处理完成后,会清理线程,并且关掉服务。
IntentService有以下特点:
(1) 它创建了一个独立的工作线程来处理所有的通过onStartCommand()传递给服务的intents。
(2) 创建了一个工作队列,来逐个发送intent给onHandleIntent()。
(3) 不需要主动调用stopSelft()来结束服务。因为,在所有的intent被处理完后,系统会自动关闭服务。
(4) 默认实现的onBind()返回null
(5) 默认实现的onStartCommand()的目的是将intent插入到工作队列中
相关文章推荐
- Service和IntentService中显示Toast的区别
- Service和IntentService中显示Toast的区别
- Android中IntentService与Service的区别
- 兔子--Service与IntentService的区别
- Service和IntentService区别
- Android中IntentService与Service的区别
- Android PendingIntent的getActivity()、getBroadcast()、getService()方法的区别
- service与IntentService 区别
- 浅谈Android Service与IntentService的区别
- Service和IntentService的区别
- Android开发之Service与IntentService的区别与使用场景(源代码剖析)
- 继承service和IntentService有什么区别?
- Android开发之Service与IntentService的区别与使用场景(源代码剖析)
- android开发步步为营之60:IntentService与Service的区别
- Service和IntentService的区别
- [Android] Service和IntentService中显示Toast的区别
- Service与 IntentService 的区别与使用场景(源代码剖析)
- Service和IntentService中显示Toast的区别
- Android中IntentService与Service的区别
- Service 与 IntentService 的区别