基础篇2:Service

2017-07-31  本文已影响0人  Danny_RxFun

目录
一、作用
二、生命周期
三、启动方式
四、启动方式
五、IntentService

Service简介

Service是Android程序中四大基础组件之一,它和Activity一样都是Context的子类,只不过它没有UI界面,是在后台运行的组件。

注意

  1. 长期运行的后台任务 — Service是Android中实现程序后台运行的解决方案,它非常适用于去执行那些不需要和用户交互而且还要求长期运行的任务。
  2. 执行在UI线程中 — Service默认并不会运行在子线程中,它也不运行在一个独立的进程中,它同样执行在UI线程中,因此,不要在Service中执行耗时的操作,除非你在Service中创建了子线程来完成耗时操作。

一、作用

二、生命周期

onCreate
onstartCommand
onBind
onunbind
ondestroy

三、启动方式

四、

五、IntentService

IntentService简介

IntentService是继承于Service并处理异步请求的一个类,在IntentService内有一个工作线程来处理耗时操作,启动IntentService的方式和启动传统Service一样,同时,当任务执行完后,IntentService会自动停止,而不需要我们去手动控制。另外,可以启动IntentService多次,而每一个耗时操作会以工作队列的方式在IntentService的onHandleIntent回调方法中执行,并且,每次只会执行一个工作线程,执行完第一个再执行第二个,以此类推。

Service本身存在两个问题

  1. Service不会专门启动一条单独的进程,Service与它所在应用位于同一个进程中。
  2. Service也不是专门一条新线程,因此不应该在Service中直接处理耗时的任务。
IntentService特征
  • 所有请求都在一个单线程中,不会阻塞应用程序的主线程(UI Thread),同一时间只处理一个请求。
  • 不可以直接和UI做交互。为了把它执行的结果体现在UI上,需要把结果返回给Activity。
  • 工作任务队列是顺序执行的,如果一个任务正在IntentService中执行,此时你再发送一个新的任务请求,这个新的任务会一直等待直到前面一个任务执行完毕才开始执行。
  • 正在执行的任务无法打断。
使用IntentService的好处
使用步骤

继承IntentService类,并重写onHandleIntent()方法即可。

上一篇 下一篇

猜你喜欢

热点阅读