Service 在Android官方定义是指没有图形化界面在后台执行耗时操作的应用组件;


下面贴上一张Service的生命周期图

这是两种启动服务(Service)的方式,Service有两种状态 启动和绑定

虽然说Service是可以在后台执行耗时操作,但是直接写耗时代码依然会抛出ANR的错误,这里引申出了服务和线程的区别

服务在后台执行耗时操作要借助线程 但是和直接借用线程执行最大的区别就是线程一旦结束不能再次执行但是服务死亡可以

重新激活。


另外Service还有一个子类IntentService


ServiceIntentService的区别在于Service是无序队列执行多个操作同时进行而IntentService是有序队列把多个Itent请求

假如一个队列一个一个执行;


关于停止服务,在非绑定的Service在完成任务的时候为了不占用资源最好将服务停止。可以通过自身调用StopSelf()停止,也可以通过

其他组件StopService()来停止;绑定的Service可以通过OnUnBind()来停止Service;





更多相关文章

  1. Android(安卓)AsyncTask 异步任务之源码解析
  2. 源码阅读分析 - View的Touch事件分发
  3. 【原创】Android(安卓)系统稳定性 - ANR(三)
  4. Android(安卓)SurfaceView 详解(一)
  5. Android事件总线框架设计:EventBus3.0源码详解与架构分析(上)
  6. android实现排队任务
  7. Android的view重绘
  8. Android(安卓)UI线程和非UI线程
  9. Android应用程序Zipalign化 -- 如何让Android应用程序更有效率的

随机推荐

  1. 在Django中,post_delete在删除之前是如何
  2. 01、复习python中基本语法 笔记
  3. Python基础(列表)第三天
  4. 字符串压缩 牛客网 程序员面试金典 C++ P
  5. MPRIS + Python (dbus):读写属性
  6. 将类对象转换为JSON Python - EasyPost
  7. 名称`posix`在何处/如何通过import语句解
  8. python解压zip脚本
  9. 机器学习、Python和数学学习资料汇总
  10. 计算机视觉相关代码片段(Python)