Service是android 系统中的一种组件,它跟Activity的级别差不多,但是他不能自己运行,只能后台运行,并且可以和其他组件进行交互。Service的启动有两种方式:context.startService() 和 context.bindService()。
 
使用context.startService() 启动Service是会会经历:
context.startService()  ->onCreate()- >onStartCommand()->onStart()->Service running
context.stopService() | ->onDestroy() ->Service stop 
 
如果Service还没有运行,则android先调用onCreate()然后调用onStart();如果Service已经运行,则只调用onStart(),所以一个Service的onStart方法可能会重复调用多次。 
 
stopService的时候直接onDestroy,如果是调用者自己直接退出而没有调用stopService的话,Service会一直在后台运行。该Service的调用者再启动起来后可以通过stopService关闭Service。

所以调用startService的生命周期为:onCreate --> onStart(可多次调用) --> onDestroy

如果调用了下面的代码:

android.os.Process.killProcess(android.os.Process.myPid());

System.exit(0);

onCreate就会调用多次。

关于 service相关推荐

  1. struts2 与 sping 整合 控制器中 service注入的问题

    以个人见解认为struts1 与spring整合的时候按照习惯,我们会把 action 控制器直接配置到sping中去: eg : 这里以使用元注解方式实现Service注入进行讲解: 控制器关键代码 ...

  2. java action dao_java中Action层、Service层和Dao层的功能区分

    一.Action/Service/DAO简介: Action是管理业务(Service)调度和管理跳转的. Service是管理具体的功能的. Action只负责管理,而Service负责实施. DA ...

  3. Android中Service生命周期、启动、绑定、混合使用

    一.Activity和Service如何绑定: 1.Service和Activity之间的连接可以用ServiceConnection来实现.实现一个ServiceConnection对象实例,重写o ...

  4. CentOS7下启动Nginx出现Failed to start nginx.service:unit not found

    错误的原因就是没有添加nginx服务,所以启动失败. 解决方法: 1.    在/root/etc/init.d/目录下新建文件,文件名为nginx 或者用命令在根目录下执行:# vim /etc/i ...

  5. CentOS7 service network start命令启动时报错解决方法

    service network start命令启动时报错: [root@localhost network-scripts]# service network start Starting netwo ...

  6. android Service 的使用

    1 Service 简介 Service 是Android 四大组件之一 一般在后台运行,无用户界面,用户无法看到. Service主要用于组件之间交互(例如:与Activity.ContentPro ...

  7. Web Service 安全性解决方案(SOAP篇)

    拼吾爱程序人生 » 软件编程 » Visual Studio.NET » Web Service » Web Service 安全性解决方案(SOAP篇) Web Service 安全性解决方案(SO ...

  8. Hibernate **关于hibernate4.3版本之后org.hibernate.service.ServiceRegistryBuilder被弃用**

    之前一直都是使用hibernate4.2.21的我,有一天突然没有使用本地的jar包而是让IDEA自动下载最新版本的hibernate5.2.2之后,发现有几个经常使用的方法报错了. //创建配置对象 ...

  9. [转]JAVA中Action层, Service层 ,modle层 和 Dao层的功能区分

    首先这是现在最基本的分层方式,结合了SSH架构.modle层就是对应的数据库表的实体类.Dao层是使用了Hibernate连接数据库.操作数据库(增删改查).Service层:引用对应的Dao数据库操 ...

  10. k8s nodeport无法访问_k8s学习之service详解

    1.概述 通过Deployment来创建一组Pod来提供具有高可用性的服务.每个Pod都会分配一个单独的Pod IP,却存在如下两问题: 1.pod ip仅仅集群内部可见的虚拟IP,外部无法访问 2. ...

最新文章

  1. .netcore部署到IIS上出现HTTP Error 502.5 - Process Failure问题解决
  2. MAC 升级到10.10(OS X Yosemite)下apache+php的配置问题
  3. python中对切片的理解
  4. Altium designer中导入CAD文件
  5. java scanner接收数组_java – 使用scanner将文件中的整数读入数组
  6. Visual Studio 2008 SDK 1.1
  7. vue-json-excel前端导出excel教程
  8. Stacking:Catboost、Xgboost、LightGBM、Adaboost、RF etc
  9. Android基础知识:在UI线程中运行代码
  10. python求小数部分_python-numpy数组的小数部分
  11. 【SQL Server 优化性能的几个方面】(转)
  12. ubuntu 18.04安装绿联千兆USB网卡的AX88179芯片驱动(编译报错解决)
  13. 免安装版MySQL的配置——详细教程
  14. 【工具】PPT插入高清图片保存后图片变模糊的解决方法
  15. 湘西纪行 芷江 芋头侗寨 通道 黔阳 高椅村
  16. 激励人生成功的10句经典中英文
  17. 常见排序算法及其对应的时间复杂度、空间复杂度
  18. 【鼠标移动到上面自动显示提示信息文字】
  19. Pytorch损失函数cross_entropy、binary_cross_entropy和binary_cross_entropy_with_logits的区别
  20. h5+app打开pdf,图片,excel,world(亲测可用)

热门文章

  1. 风变编程—Python基础和爬虫精进
  2. mysql无故自动关闭
  3. VMtools是什么
  4. 张煦院士:当之无愧的“中国通信界元勋”
  5. 陈琳今晨跳楼自杀身亡
  6. 基于RRT的路径规划器
  7. wls matlab code,【 MATLAB】 Two-step WLS algorithm Simulation of TOA - Based Positioning
  8. python程序加密_三分钟教你python自动化加密Word
  9. MotionNet: 基于鸟瞰图的自主驾驶联合感知与运动预测
  10. android电话拨号器的使用