IntentService继承了Service,在IntentService内有一个工作线程来处理耗时操作。IntentService封装了handlerThreadHandler,在IntentServiceonCreate()中创建并启动了handlerThread对象,利用handlerThreadlooper对象又创建了Handler对象。每次启动IntentserviceonStartCommand(Intent intent)就会被调用一次,在onStartCommand中又调用了onStart(Intent intent),在onStart(Intent intent)方法里将intent赋值给了message,并通过Handler发送message到子线程的Looper,这个消息就会在handlerThread中处理。Handler收到消息后,会把intent对象传递给onHandleIntent(Intent intent)方法中处理,在onHandleIntent做耗时操作onHandleIntent执行完后,IntentService会通过stopSelf(int startId)停止服务。多次启动同一个IntentService执行多个任务,只会创建一个service实例,但会开启多个线程,多个线程会按开启顺序串行执行(一个线程执行完成,另一个线程才会执行),所有任务执行完成后,IntentService会自动停止并销毁。

参考链接:

http://www.tuicool.com/articles/zeMFFvB


更多相关文章

  1. Android(安卓)app开发中获取cpu arm架构信息及执行shell命令方法
  2. android系统之sensor学习
  3. Flutter ubuntu 环境搭建
  4. Android百度地图(一)如何集成到项目中
  5. Android里五种 Toast方式
  6. android:json解析的两个工具:Gson和Jackson的使用小例子
  7. Android多线程研究(1)——线程基础及源代码剖析
  8. Android(安卓)Intent和PendingIntent的区别详细说明
  9. Android: 获取当前线程状态

随机推荐

  1. Android(安卓)回调机制
  2. ImageView的属性android:scaleType,即Imag
  3. 解决ArcGIS Android(安卓)Could not find
  4. android ubuntu下NDK的开发
  5. Android(安卓)SDK开发 -- TitleBar重构 (
  6. Android中SQLite数据库操作(1)——使用SQL
  7. Android(安卓)常用样式设置
  8. 写在前面
  9. Android中的布局管理
  10. 关于Edittext的一些事情