Android 开发笔记 -- Service

本文详细介绍了Android开发中的Service组件,包括基本概念、创建启动与绑定服务,服务生命周期,以及后台任务的实现方式如异步消息处理机制(Handler和AsyncTask)。重点阐述了Service如何在后台运行,前台服务的使用,以及如何通过startService和bindService进行交互。同时提到了API 26以后后台服务的限制,并推荐使用WorkManager和AlarmManager处理后台任务。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

基本概念

android 四大组件之一:Service;

  • Service 是可在后台长时间运行但不提供界面的应用组件;
  • Service 依赖于创建 Service 的应用程序进程;可以在后台运行,但其自身并不会开启新线程;

三种不同的服务类型:

  • 前台,执行用户能注意的操作,如:播放音乐,前台服务必须显示通知;
  • 后台,执行用户不会注意到的操作;
    在 API 26 及以后,系统会对后台服务施加限制,应改为使用计划作业;
  • 绑定,应用组件使用 bindService,多个组件可以绑定到一个服务;

一个 Service 既可以是启动服务也可以是绑定服务:

  • 启动服务实现onStartCommand方法
  • 绑定服务实现onBind方法

创建服务

两个类:

  • Service,所有服务的基类,默认使用应用的主线程;
  • IntentService,使用工作线程来处理请求;
// 实现 Service 的子类,重写一些回调方法

onCreate   // 首次创建服务时调用,在 onStartCommand 和 onBind 之前
onStartCommand  // 组件通过 startService 方法启动服务
onBind     // 组件与服务进行绑定, bindService
onDestroy  // 不再使用服务且准备销毁
// 继承 IntentService
1、提供 OnBind 的默认实现
2、提供 onStartCommand 的默认实现
3、会创建默认的工作线程,且处理完后会停止服务,不必调用 stopSelf
4、需要实现 onHandleIntent 

创建启动服务

  • 继承 Service 或者 IntentService 类;
  • 实现 onStartCommand 方法 或者 onHandleInt
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值