Service两种启动方式的生命周期

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

注:Service的生命周期中onStart()方法被淘汰,用onStartCommand()代替。

onCreate():在服务被创建时执行,一个服务类只能调用一次。

onStartCommand():在服务开始时被调用执行,可以被调用多次。

onDestroy():销毁服务,一个服务类中也只能调用一次。

服务和进程,每个APP的启动必然会产生一个进程。
一个进程中可能会包含多个服务,也可以不启动任何服务。当然如果一个进程被杀死了,那么这个进程中所包含的所有服务都会被杀死。

服务有两种启动方式:

1.第一种,startService的启动方式,此时与应用无关,即使app关闭也不会停止,而是在后台运行。关闭这种服务只能调用stopService方法。

同一个服务没有被stop时,只会走一遍onCreate(),其余每次点击启动同一个服务时,都只走onStartCommand()方法。

2.第二种,bindService的启动方式,其特性是随着Activity的生命周期变化而改变。
如果启动后没有结束时,则不会再次启动(不再执行任何生命周期,即再次点击无效);
如果启动后,手动结束,则可以再次开启;
如果启动后,Activity(绑定的)退掉时,则服务结束。

你可能感兴趣的:(Android)