Service
启动方式:
startService:启动一个服务在后台执行任务,用stopService停止
bindService:启动服务可进行通信,用unbindService停止
startService同时bindService:停止服务时需同时使用stopService与unbindService
分类:
本地服务(Loca):依附于主进程,主进程终止则服务终止
远程服务(Remote):是独立的进程,不受其他进程的影响
生命周期:
service整体的生命时间是从onCreate()被调用开始,到onDestroy()方法返回为止。
和activity一样,service在onCreate()中进行它的初始化工作,在onDestroy()中释放残留的资源。
onCreate() 和 onDestroy()会被所有的service调用,不论service是通过startService()还是bindService()建立。
startService:
startService方法启动的服务,都在后台运行,不受bindService影响,如果用startService多次启动,onCreate方法只会执行一次,onStartCommand方法会多次启动,系统只 创建一个Service实例,在stopService调用或被系统结束之前,该Service会一直在后台运行,不受对应程序的Activity影响
binService:
bindService启动服务,同样onCreate方法执行一次,且不执行onStartCommand方法用unbindService或退出之前调用bindService的Context实例,系统将会停止Service
同时startService、bindService:如下图