目录
- service简介
- 创建,配置service
- 启动,停止service
- 绑定本地service并与之通信
- service的生命周期
- 使用IntentService
重点
- service的作用和意义
- 创建,配置,启动,停止service
- 绑定本地service并与之通信
- service的生命周期
- IntentService的功能和用法
一 service的理解
- 代表可执行的程序
1 创建子类,
2清单文件中配置,
3配置<intent-filter.../>
元素指定它可被哪些intent启动 - 从Context中派生出来的
- 生命周期
1 onCreate():
2 onDestroy()
3 onStratCommand()
4 onUnbind()
5 Binder onBind(Intent intent) - service的两种启动方式
1
2 - service的关闭方式
1
2
3 被自己 - Service的生命周期
根据service的启动方式的不同,service的生命周期也不一样
1 startService():非绑定service的生命周期:onCreate------>onStartCommant()---->onDestroy()
2 bindService():绑定service的生命周期:onCreate-->onBind()-->onUnbind()-->onDestroy()
3 特殊的:当a应用程序用startService()的方法启动service,这时候b应用程序又用bindService()来启动Service,b又调用unbindService()方法,之后b又调用bindService(),这个过程的生命周期为:
onCreate()-->onStartCommand()-->onBind()-->onUnbind()(重写该方法时返回true)-->onRebind()
- 如果希望onRebind()方法被调用,1 用startService()方法开启service,2 onUnbind()方法返回true
- 通过上面第三种特殊情况分析,service没有调用onDestroy()的生命周期,这是因为service不是由bindService()方法来启动的,所以调用unBindService()方法并不会关闭service,也就是service不会终止。所以当bindService()绑定到一个已经启动的service上时,service只是把IBind对象传给Activity,并不会把生命周期绑到activity上