service巩固篇(1)

本文详细解析了Android中的Service概念,对比了startService与bindService两种启动方式的特点与区别,包括它们的生命周期、通信机制及停止条件,为开发者提供了全面的指导。

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

什么是Service?

       大家好!欢迎大家来到大菠萝的博客 接下来我们一起来了解一下 service

service是一个可以长时间在后台执行操作而且不适用用户界面的组件

 这两个分为startService 和 bindService  

startService 是什么:他是启动service的一种方式

bindService是什么:他是启动service的一种方式

我:emmm  那么他两的区别在哪里?

startService :

  •                    在其他组件调用startService后 服务处于启动状态  
  •                    如何停止?
  •                    在service中使用stopService后程序停止 或者在其他组件中使用stopService方法使用
  •                    service与启动他的组件的方式:
  •                    没有提供独立的通信方式  启动service后service就处于独立运行的状态
  •                    service的生命周期 一旦启动 service就可以在后台无限期运行 即使启动service的组件已经被销毁 直到其被停止

    接下来看看另外一种启动方式

bindService:

  •                    在其他组件调用bindService后 服务处于启动状态  
  •                    如何停止?
  •                   和service截然不同 注意 bindservice 只要在当所有与service绑定的组件(我很少用所有的)都被销毁 或者都调用了onbindService方法后 service将停止运行
  •                    service与启动他的之间组件的通讯方式:
  •                    可以利用ServiceConnection进行通信 组件可以与service发生交互 发送请求 获取结果 或者是利用IPC跨进程来进行这些操作
  •                   当所有与其绑定的组件都取消绑定后 (这里取消绑定有可能是被主键销毁 也有可能是调用了unbindService方法)service将停止

                注意的是:

  1.                 启动时的"其他组件"不包括brocast receiver,其无法直接启动或者绑定service
  2.                 startService和BindService并不冲突 同一个 service可能既有组件startService启动了他 又有组件与他进行了绑定
  3.                 当同一个service 与其他组件同时存在这两种联系时 生命周期也会发生变化 而这时候必须从两种角度看service停止 才能停止

        
               

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值