android之service的startService和bindService的区别

本文详细解释了Android中通过startService和bindService两种方式启动服务的区别。包括服务与调用者之间的关系、服务的可见性及如何正确地停止服务。

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

1,通过startService开启的服务,一旦服务开启,这个服务和开启他的调用者之间就没有任何联系了,调用者不可以访问service里面的方法,调用者如果被系统回收了或者调用了onDestory方法,service还会继续存在。(比如后台下载数据,虽然在我前面的文章讲过,手机其实会把这些孤独留下来的服务杀掉,除非这个应用已经加入了手机清理白名单)

2,通过bindService开启的服务,服务开启之后,调用者和服务对象之间还存在着联系,一旦调用者挂掉了,service也会跟着挂掉。

(以下两条是我总结的,前俩条是来自其他博客)另外关于服务的一篇好文章参考:http://blog.youkuaiyun.com/klx502/article/details/44624133


3,由bindService开启的服务,在“正在运行”的服务里,查看不到服务进程,但是由startService开启的服务可以在“正在运行”里查看到服务,


4,同时使用bindService和startService的应用,当然可以在“正在运行”的列表里查看到后台服务,然后点击“停止”服务,服务就会在列表里消失,但是服务仍然在运行,因此猜测,点击停止是取消了服务的StartService所给予的属性,但是由于服务没有使用unbindService来解除,所以服务没有被停止。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值