Android Service两种启动方式及 生命周期

onStart()后调用bindService该service则调用onBind(),调用onBind以后调stopService将无法释放该service必须再调unbindService才触发onUnbind()-->onDestroy()

启动方式

1. 使用startService启动服务的生命周期方法:

使用这种方法启动一个Service,在Service启动后该Service和启动该Service的Activity就没有关系了。但是这种发放启动的Service不能和Activity进行交互。

通常情况下使用startService调用的Service生命周期方法为:onCreate()->onStartCommand()。

其中多次调用startService只调用一次onCreate(), 但可以多次调用onStartCommand().

当服务需要退出时,调用stopService,就会调用Service的onDestroy()方法。

2.使用bindService启动服务的生命周期方法:

使用这种方法启动的Service是和调用者Activtiy同生命的,当Activtiy退出时,服务也同时销毁了。这种方法启动的Service能够和Activity进行交互。

调用bindService启动服务,Service生命周期方法为:onCreate()->onBind()

多次调用bindService并不会多次调用onBind(), 即onCreate()和onBind()都是只被调用一次。

当Activity退出是,该Service销毁,调用:onUnbind()->onDestroy();

生命周期                                                                                           

Android Service两种启动方式及 生命周期_第1张图片 Android Service两种启动方式及 生命周期_第2张图片


你可能感兴趣的:(安卓转)