[Android]Service服务

本文深入探讨Android中的Service,包括Service的基本概念、分类(启动Service与绑定Service的区别)、生命周期、与Activity的通信方式,以及远程Service的使用,强调了跨进程通信中的AIDL使用和实例。
摘要由CSDN通过智能技术生成

一、什么是Service

Service(服务)--Android四大组件之一。

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

Service的运行不依赖于任何用户界面,即使程序被切换到后台或者用户打开另一个应用程序,Service仍然能够保持正常运行,这也正是Service的使用场景。当某个应用程序进程被杀掉时,所有依赖于该进程的Service也会停止运行

二、 Service分类

1.分类 

图片转自:https://blog.csdn.net/carson_ho/article/details/53160231

2.特点

 

3.本地Service

 3.1两种启动方式

(1)startService()方法开启Service

  1. 定义一个类并继承Service。
  2. 在AndroidManifest.xml文件中配置该Service。
  3. 使用Context的startService(Intent)方法启动该Service。 
  4. 不再使用该Service时,调用Context的stopService(Intent)方法停止该Service。

(2)bindService方法开启Service

  1.  定义一个类并继承Service。并在类中创建一个实现Binder接口的实现实例对象并提供公共方法给Activity调用。 
  2. 从onBind()回调方法返回此Binder实例。 
  3. Activity中继承ServiceConnection接口,从onServiceConnected回调方法接收Binder实例,使用此Binder实例来调用Service提供给Activity的公共方法。
  4. 调用bindService(intent)来绑定Service后,便会执行onServiceConnected回调方法。
  5. unbindService()来解除绑定Service.

 3.2 Service的生命周期 

  •  启动服务-onCreate()-onStartCommand()-服务运行-onDestory()-服务被销毁
  •  绑定服务-onCreate()-onBind()-服务运行-onUnBind()-onDestory()-服务被销毁

   关于Service:

  1. 被启动的服务的生命周期:如果一个Service被某个Activity 调用 Context.startService 方法启动,那么不管是否有Activity使用bindService绑定或unbindService解除绑定到该Service,该Service都在后台运行。如果一个Service被startService 方法多次启动,那么onCreate方法只会调用一次,onStart将会被调用多次(对应调用startService的次数),并且系统只会创建Service的一个实例(因此你应该知道只需要一次stopService调用)。该Service将会一直在后台运行,而不管对应程序的Activity是否在运行,直到被调用s
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值