美文网首页
清晰地理解Service

清晰地理解Service

作者: Leon_w | 来源:发表于2018-07-09 15:30 被阅读0次

定义:

Service 是一种运行在后台的服务,分为本地服务和远程服务.

  • 本地服务是依赖于主线程而存在的,而不是单独个体的线程,不需要使用太多的资源
  • 远程服务为独立的进程,对应进程名格式为所在包名加上你指定的android:process字符串。由于是独立的进程,因此在Activity所在进程被Kill的时候,该服务依然在运行,

1.Service的start和bind状态有什么区别?

Service分为两种启动方式一种是startService,还有就是BindService.下面分别说下startService和BindService

  • startService 启动Service时 ,表示的是启动这个Service,这个时候的Service的生命周期是:onCreate,onStartCommond,onDestory,该Service停止的方法是 StopService.
  • BindService 启动Service时,表示的是绑定这个Service,这个时候Service的生命周期是 onCreate,onBind,Service停止的方法调用的是UnBindService

2.同一个Service,先startService,然后再bindService,如何把它停止掉?

当一个Service被先startService后再次被bindService了,或者多次被bindService,我觉得应该是不管是多次还是一次,有且只调用一次UnBindService.然后再StopService.就可以停止掉了


3.你有注意到Service的onStartCommand方法的返回值吗?不同返回值有什么区别?

onStartCommand的返回值有四种:

START_NOT_STICKY

如果当你的Service 在onStartCommand方法返回START_NOT_STICKY ,则当跑完onStartCommand后 杀死了该服务,那么只有当新的Intent传进onStartCommand 才会被重建否则不会重建,这是最安全的方法.

START_STICKY

如果当你的Service 在onStartCommand方法返回START_STICKY,则当跑完onStartCommand后 杀死了该服务,系统会重新创建Service,但这里的Intent不再是没杀死之前的Intent而是系统给分配的一个新的Intent.该Intent为空.

START_REDELIVER_INTENT

如果系统在onStartCommand()方法返回后,系统就会重新创建了这个服务,并且用发送给这个服务的最后的Intent对象调用了onStartCommand()方法。任意等待中的Intent对象会依次被发送。这适用于那些应该立即恢复正在执行的工作的服务,如下载文件

4.Service的生命周期方法onCreate、onStart、onBind等运行在哪个线程?

Service 是默认在主线程中运行的


相关文章

  • 清晰理解service

    service的start和bind有什么区别? start启动的service,service有独立的生命周期,...

  • 清晰地理解Service

    定义: Service(服务)是一个一种可以在后台执行长时间运行操作而没有用户界面的应用组件。服务可由其他应用组件...

  • 清晰地理解Service

    定义: Service 是一种运行在后台的服务,分为本地服务和远程服务. 本地服务是依赖于主线程而存在的,而不是单...

  • Android学习计划第二周

    Android学习计划# #第2周# 问题: 清晰地理解Service。1、Service的start和bind状...

  • 理解Service

    话题:清晰地理解Service。 1、Service的start和bind状态有什么区别? (1)命令式启动服务:...

  • 第二周 Service

    话题:清晰地理解 Service。 1、Service 的 start 和 bind 状态有什么区别?2、同一个 ...

  • 第二周 清晰地理解Service

    清晰地理解Service 问题1. Service的start和bind状态有什么区别? unbind只能解绑一次...

  • 深入理解Android-清晰的理解Service

    service 在项目开发中会经常用到,但是只是知道如何使用,不懂service 的内部实现原理,本章带领大家清晰...

  • 理解Service

    Service的start和bind有什么区别? Service分为两种工作状态,一种是启动状态,主要用于执行后台...

  • service理解

    关于service的理解 经过start启动的service由独立的生命周期,不依赖该组件。多次调用start会多...

网友评论

      本文标题:清晰地理解Service

      本文链接:https://www.haomeiwen.com/subject/tbwzuftx.html