一、初识Service
1、启动Service和停止Service
|
|
服务在系统中最多只有一个实例,即使上述代码中创建了两个不同的Intent实例,但是启动和停止的服务是同一个。只创建一个Intent实例也是可以的,如下所示:
Service代码:
2、绑定Service和解除绑定服务
API:
实现接口ServiceConnection:
绑定Service和解除绑定Service:
二、Service生命周期
1、启动服务生命周期
第一次启动服务日志如下:
第二、三次启动服务日志:
接着停止服务日志:
2、启动服务后并退出
启动服务后并退出当前程序的日志:
重新启动应用并停止服务:
3、绑定服务生命周期
第一次绑定服务日志:
第二、三次绑定服务无任何日志输出
解除绑定服务日志:
4、绑定服务并退出
成功绑定服务后并退出当前程序的日志:
如果绑定服务后,请确保在异常情况下解除绑定服务。比如在Activity的onDestroy方法中解除绑定服务。
5、启动服务后绑定服务
启动服务:
绑定服务:
解除绑定服务:无日志
停止服务:
总结:
- 启动服务后可以通过调用stopService()方法停止服务(也可以由其他应用程序调用、或者服务自身调用stopSelf()来停止服务)。
- 只有第一次启动服务时,系统会调用Service的onCreate和onStartCommand方法,其他只会调用onStartCommand方法。
- 绑定服务时,系统会调用Service的onCreate、onBind方法,以及ServiceConnection实现类的onServiceConnected方法。
- 如果绑定了服务,请在停止服务前或退出程序前必须解除服务绑定。