废话
Activity有生命周期,作为四大组件之一的Service当然也有生命周期,今天我们就来学习下Service的生命周期
重写Service的回调方法
我们新建一个项目,然后创建一个Service,并重写所有回调方法
MyService.java
千万别忘了在AndroidManifest.xml中注册
AndroidManifest.xml
Service有两种启动方式:startService和bindService,启动方式不同,生命周期也不同,下面我们来分析
startService
这个方法只是简单的启动Service,启动之后Service就开始运行,如果不停止它的话,将会一直运行下去
这种方式启动Service有四个回调
- onCreate
Service创建时调用 - onStartCommand
每次启动Service都会调用一次此方法 - onBind
此方法是抽象方法,必须重写,我们暂时在这个方法里返回空就行了 - onDestory
Service销毁时调用
bindService
这个方法启动Service可以和Service进行数据交互,可以从Service那里获取数据,也可以传递数据给Service,并且Service的生命周期和启动它的Context有关
这种方式启动Service有三个回调
- onCreate
Service创建时调用 - onBind
此方法是抽象方法,必须重写,我们可以在这个方法里返回一个Binder对象,用于与Service绑定的组件进行数据交互 - onDestory
Service销毁时调用
Service可以启动多次,首次启动会创建一个实际,后面每次启动不会创建新的实际,也就是说onCreate方法只执行一次,而onStartCommand可能执行多次
网友评论