生命周期:
通过startservice启动
正常运行时,顺序
onCreate
onStartCommand
onStart
调用stopService后
onDestroy
通过系统切片杀掉软件后,service会关掉,不会走onDestroy,过一会service会自动再启动,这个service相当于重新new了一个,数据全部是刚创建时的状态,顺序是
onCreate
onStartCommand
onStart
通过bindservice启动(
绑定的activity的ondestory中一定要unbind,否则activity结束时可能会报错
)
onCreate
onBind
调用unbindService后
onDestory
bind服务如果通过系统切片杀掉软件后,service会关掉,不会走onDestory,service在主动再次启动前不会再次启动
bind启动服务方式
activity:
private
TestService
bindService
=
null
;
private
ServiceConnection
conn
=
new
ServiceConnection() {
@Override
public void
onServiceConnected(ComponentName name, IBinder service) {
isBound
=
true
;
TestService.MyBinder binder = (TestService.MyBinder) service;
bindService
= binder.getService();
}
@Override
public void
onServiceDisconnected(ComponentName name) {
isBound
=
false
;
bindService
=
null
;
}
};
service(
TestService
):
public
MyBinder
binder
=
new
MyBinder();
public class
MyBinder
extends
Binder{
public
TestService getService(){
return
TestService.
this
;
}
}