Service以及AIDL学习

本文详细解析了Android Service的运行原理,包括Service为何在后台运行、Service实例的唯一性、Service启动方式的区别及其对应用的影响,并强调了Service与Activity的不同生命周期管理。通过代码示例进一步阐述了Service的使用细节。

参考:

http://blog.youkuaiyun.com/guolin_blog/article/details/11952435

http://blog.youkuaiyun.com/guolin_blog/article/details/9797169


1. 有个很有意思的现象,终于明白为什么Service是在后台运行的了,不是因为Service可以代替Thread,而是因为当我通过后台杀死应用时,发现Service竟然是没有被Kill掉的,Service的OnCreate方法不会再次被执行,但是Activity的OnCreate会再次被调用,这就说明通过操作系统的杀死应用时,其实退出的只是UI,但是Service并没有被Kill掉,这个就可以保证Service长期在后台运行

2. 一个Service类只有一个实例在运行,无论是通过startService或者bindService方法去调用。如果已经有Service实例在运行,那么分别会回调onStartCommand或onBind方法。startService调用只能通过stopService才能停止,bindService只有通过unbindService才能停止。如果一个service同时通过这两种启动方法启动,则必须分别通过两种结束方式才能停止该Service

3. 由于Service也是一个组件,所以只能通过Intent进行调用。只有通过onBind方法启动的Service才能建立Binder建立通信,否则无法通过引用直接通信


代码:https://github.com/lihei12345/ServiceTest

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值