Service的生命周期是什么样的?
这道题想考察什么?
- 是否了解Service真实场景使用,是否熟悉Service?
考察的知识点
- Service在项目中使用与基本知识
考生应该如何回答
1.Service的生命周期是什么样的?
答:
首先要分为两种,一种是onBind 一种是onUnbind,通常有两种方式启动一个Service,他们对Service生命周期的影响是不一样的,第一类通过startService(Service会经历 onCreate 到onStart,然后处于运行状态,stopService的时候调用onDestroy方法。如果是调用者自己直接退出而没有调用stopService的话,Service会一直在后台运行。),第二类通过bindService(Service会运行onCreate,然后是调用onBind, 这个时候调用者和Service绑定在一起。调用者退出了,Service就会执行onUnbind->onDestroyed方法。,所谓绑定在一起就共存亡了。调用者也可以通过执行unbindService方法来停止服务,这时候Srevice就会执行onUnbind->onDestroyed方法。),需要注意的是如果这几个方法交织在一起的话,会出现什么情况呢?一个原则是Service的onCreate的方法只会被执行一次,就是你无论多少次的startService又bindService,Service只被创建一次。
如果先是bind了,那么start的时候就直接运行Service的onStart方法,如果先是start,那么bind的时候就直接运行onBind方法。
如果service运行期间调用了bindService,这时候再调用stopService的话,service是不会调用onDestroy方法的,service就stop不掉了,只能先UnbindService, 再StopService。
生命周期图如下:
2.Service的生命周期在开发过程中,最常见的是哪些?
答:
在Service的生命周期中,被回调的方法比Activity少一些,常见的就是onCreate, onStart, onDestroy。
文末
分享一份福利!!!!
Android组件内核面试题详解!
详细Vx关注公众号:Android老皮