今天,突然在一个技术群里,有个人说了他在面试中遇到的变态问题,其中就有一个是关于serviceq启动的问题,我当时也不是很了解就随口说了一个答案,但是是错误的,一个人认识的朋友就给我指正了,并让我以后遇到不会的多写demo验证,并记录下,所以就准备把测试的过程记录在博客上。
1、首先我正常地用startservice启动service,并正常退出APP,service的大致启动过程如下:
2、接着利用bindservice启动service,并正常退出APP,service的大致启过程如下:
3、接着我又同时利用这两种方法启动service,并正常退出APP,startservice在bindservice前调用,service的大致启动过程如下:
4、接着我又同时利用这两种方法启动service,并正常退出APP,startservice在bindservice后调用,service的大致启动过程如下:
总结:startservice启动服务后,程序退出stopservice,服务依旧存在,而bindservice启动服务后程序退出unbindservice,服务就会销毁,而同时调用两种方法启动同一个方法,只会启动一个服务,但是其生命周期有所不同,取决于两种方法启动服务的先后顺序。