android serviceconnection 作用,Android Service服务的相关介绍

文章目录Android Service服务的相关介绍创建方式启动方式生命周期onStartCommand参数及返回值的理解ServiceConnection场景说明前台服务问答startService和bindService顺序的影响如果你的服务也想让其他应用启动那该怎么办其他参考Android Service服务的相关介绍android service是一种运行在后台,不需要与用户交互的任务se...
摘要由CSDN通过智能技术生成

文章目录

Android Service服务的相关介绍

创建方式

启动方式

生命周期

onStartCommand参数及返回值的理解

ServiceConnection

场景说明

前台服务

问答

startService和bindService顺序的影响

如果你的服务也想让其他应用启动那该怎么办

其他

参考

Android Service服务的相关介绍

android service是一种运行在后台,不需要与用户交互的任务

service不是运行在单独的进程中的(当然,如果你想的话也是可以在单独的进程中的),本身还是运行在主线程中,因此如果后台服务是个耗时任务,那么必须得开启线程去执行(因此出现了IntentService)

当进程被杀死,依赖该进程的服务也会被杀死,也就是说当app应用进程被杀死时,服务也停止了,因此不存在说app挂了而它的服务还在跑的情况

实际上service可以理解为一个没有界面的activity,它可以默默地在后台处理一些任务

创建方式

在android中使用service其实很简单,就是继承Service即可,然后在相应的生命周期函数里实现一些功能

当然,作为四大组件之一的service,别完了在清单文件中配置一下servic,不然服务是跑不起来的

生命周期里有个onBind方法,这个onBind是干嘛的呢

一般情况下,如果我们的服务启动后就只是默默地做它自己的任务,不想与外界有任何交流,那么就可以在onBind这个方法里返回null

但假如我们的服务可以对外开放自己的一些能力(在代码里就是开放一堆方法供外界调用),那么就可以把这些要开放的东西写在一个类里,而这个类要实现IBinder接口,然后我们可以在Service类里实例这个IBinder对象,在onBind这个方法里返回这个实例对象

这样客户端连接到这个服务时,就可以拿到这个实例对象,然后就可以愉快地调用服务开放的能力了

启动方式

当服务都写好了,那么该怎么启动这个服务呢

service有两种启动方式,startService和bindService

这两种方式的区别是bindService方式可以被多个Activity绑定,当所有绑定的都解绑后服务才有可能会销毁,之所以说可能,是因为假如服务在bindService之前已经startService了,那么即使后面都解绑了,服务依然会存在

startService一旦跑起来,除非调用stopService或stopSelf或者应用被杀死,否则服务会一直存在,即使中间有人通过unbindService解绑,服务也不会销毁

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值