Service是面试中经常问到的一个模块,从之前的简单使用,到后期的应用保活,当然现在Android系统对这种保活机制进行了优化和限制,我们先简单了解下Service的特性。
接下来的文章主要以一问一答的方式进行介绍Service的特性,必要部分也会分析到Service的源码逻辑
首先啥是Service?
- 虽然大家都知道啥是Service,但是我也得甩个定义。
- Service是Android系统中的四大组件之一,主要有两个应用场景:后台运行和跨进程访问。Service可以在后台执行长时间运行操作而不提供用户界面,除非系统必须回收内存资源,否则系统不会停止或销毁服务。服务可由其他应用组件启动,而且即使用户切换到其他应用,服务仍将在后台继续运行。 此外,组件可以绑定到服务,以与之进行交互,甚至是执行进程间通信 (IPC)。
Service启动方式有几种?
- 启动方式有两种。
- startService(Intent)
- bindService(Intent,ServiceConnection,flags);
startService和bindService启动服务有什么区别?
- 这两种启动方式的生命周期不同。
startService:onCreate()-onStartCommand()-onDestroy();
bindService:onCreate()-onBind()-onServiceConnected()-onUnBind()-onDestroy();
混合调用,先startService后bindService
onCreate()-onStartComma