目录
1、做用
2、生命周期
3、启动方式
4、启动方式
5、IntentService
Service是Android程序中四大基础组件之一,它和Activity同样都是Context的子类,只不过它没有UI界面,是在后台运行的组件。多线程
注意
onCreate
onstartCommand
onBind
onunbind
ondestroy异步
IntentService是继承于Service并处理异步请求的一个类,在IntentService内有一个工做线程来处理耗时操做,启动IntentService的方式和启动传统Service同样,同时,当任务执行完后,IntentService会自动中止,而不须要咱们去手动控制。另外,能够启动IntentService屡次,而每个耗时操做会以工做队列的方式在IntentService的onHandleIntent回调方法中执行,而且,每次只会执行一个工做线程,执行完第一个再执行第二个,以此类推。线程
Service自己存在两个问题继承
- Service不会专门启动一条单独的进程,Service与它所在应用位于同一个进程中。
- Service也不是专门一条新线程,所以不该该在Service中直接处理耗时的任务。
- 全部请求都在一个单线程中,不会阻塞应用程序的主线程(UI Thread),同一时间只处理一个请求。
- 不能够直接和UI作交互。为了把它执行的结果体如今UI上,须要把结果返回给Activity。
- 工做任务队列是顺序执行的,若是一个任务正在IntentService中执行,此时你再发送一个新的任务请求,这个新的任务会一直等待直到前面一个任务执行完毕才开始执行。
- 正在执行的任务没法打断。
继承IntentService类,并重写onHandleIntent()方法便可。生命周期