Service解析
来源:互联网 发布:南昌大学怎么样知乎 编辑:程序博客网 时间:2024/05/08 02:16
Service启动模式
1、context.startService():
当我们首次调用startSevice()启动service时,首先调用其onCreate(),再调用onStartCommand(),然后service进入运行状态;此后若再调用startService(),则不会创建新的service对象,系统会找到已创建的service实例然后调用onStartCommand();若要停掉service,只需要调用context.stopService(),其onDestory()方法会被调用。
需要注意的是:
1)不管前面我们调用多少次startService(),只需要调用一次stopService(),即可停止service。
2、context.bindService():
当我们首次调用bindService绑定service时,首先调用其onCreate(),再调用onBind(),然后service进入运行状态,ServiceConnection.onServiceConnected()被调用,用户可以通过在此方法中获取AIDL对象,与service进行交互;此时也可以通过startService()执行onStartCommand();此后再调用bindService(),系统不会新建service实例,也不会调用其onBind()方法;若要解绑service,只需要调用unBindService(),此时其unBind(),onDestory()被调用。
需要注意的是:
1)通过unBindService解绑服务,不会触发ServiceConnection.onServiceDisconnected(),此方法只会在service被异常销毁时才会调用;
2)在bindService(后,若调用startService(),之后再调用unBindService(),只会触发其unBind(),不会触发onDesory(),可以通过stopService()来停掉service。
区别:
1、startService()启动的service与调用者无必然联系,即调用者结束了自己的生命周期,只要没stopService(),service仍在运行;bindService()启动的service与调用者的生命周期相关联,当调用者被销毁,service也随之被销毁。
2、bindService()常用于进程间通信
参考:
http://blog.csdn.net/liuhe688/article/details/6874378
- Service解析
- Service解析
- Service 解析
- 解析service(一)
- 解析service(二)
- 解析Activity、Intent、Service
- init.c解析service
- Android Service解析
- Android_framework层Service解析
- Android Service解析
- Service完全解析
- Android Service解析
- Android Service解析
- Service完全解析
- Android Service 全解析
- Android Service 完全解析
- 重新解析REST Service
- Android Service 解析
- DLL注入技术之远线程注入
- 【Android自助餐】Handler消息机制完全解析(四)Looper解析
- Hdu 5344 MZL's xor (杂)
- 浅谈android网络编程
- java8之lambda总结
- Service解析
- DLL注入技术之消息钩子注入
- 读懂心经
- 【Android自助餐】Handler消息机制完全解析(五)鸟瞰与总结
- Consul 原理和使用简介
- docker disk quota
- 零基础学习Linux——ls
- 广播Broadcast
- 通信之多客户端传输文件的实现