Android面试-3 Service

本文详细介绍了Android中的Service组件,包括启动Service、绑定Service和前台Service的生命周期、工作原理及应用场景。重点讲解了如何在不同状态间切换,并提供了防止服务被杀死的策略,如设置START_STICKY、前台服务和通过广播重启服务。
摘要由CSDN通过智能技术生成

简介

计算型组件,可以在后台执行长时间运行操作而没有用户界面的应用组件。有两启动(用于执行后台计算)和绑定(用于其他组件和Service交互)两种运行状态,

自定义Service

  • onBind: Service子类必须重写该方法。若是启动状态,则不该方法只需返回null,在绑定状态的情况下则返回一个IBinder的实现类,供客户端用来与服务进行通信。
  • onCreate: 首次创建服务时,系统将调用此方法来执行一次性设置程序(在调用 onStartCommand() 或onBind() 之前)。如果服务已在运行,则不会调用此方法,该方法只调用一次
  • onStartCommand: 当另一个组件(如 Activity)通过调用 startService() 请求启动服务时,系统将调用此方法。一旦执行此方法,服务即会启动并可在后台无限期运行。 如果自己实现此方法,则需要在服务工作完成后,通过调用 stopSelf() 或 stopService() 来停止服务。(在绑定状态下,无需实现此方法。)。该方法有三个参数(intent,flag,startid)
  • onDestory: 当服务不再使用且将被销毁时,系统将调用此方法。服务应该实现此方法来清理所有资源,如线程、注册的侦听器、接收器等,这是服务接收的最后一个调用。

两种状态


启动状态

startService开启,服务一旦被启动将在后台一直运行,即使启动服务的组件(Activity)已销毁也不受影响,除非手动调用才能停止服务, 已启动的服务通常是执行单一操作,而且不会将结果返回给调用方。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值