作为四大组件之一,与Activity类似, Service也有 生命周期,即从开始到结束所经历的生命周期方法调用。(不过要简单的多)
Service有创建,开始,绑定,解绑,销毁等阶段,对应的有相应的生命周期方法。
1. 不同启动方式下的生命周期
不同的启动方式对应了不同的生命周期方法。
1.1 startService(非绑定式)
- 启动阶段
当启动者(Activity)调用 startService 后,Service会执行:
onCreate(): 只会在首次创建执行一次
onStartCommand(): 每次 startService 都会执行
此时,Service已经启动。
- 结束阶段
如果要结束Service,有两种方式。
1. 启动者调用stopService
2. service内部调用stopSelf
结束时,会执行生命周期方法:
onDestroy(): 服务销毁前的最后一个方法,可以做一些释放资源等收尾工作。
- 总结
一个完整的非绑定式Service的生命周期方法调用过程是:
onCreate --> onStartCommand --> onDestroy
1.2 bindService (绑定式)
- 启动阶段
当启动者(Activity)调用 bindService 后,Service会执行:
onCreate(): 只会在首次创建执行一次
onBind(): 也是只会在首次绑定时执行一次,再次调用 bindService 也不会执行onBind了
此时,Service已经启动并绑定。
- 结束阶段
结束Service,也有两种方式:
1. 自动结束:当启动者销毁时(Activity onDestroy),会自动解绑Service。当没有绑定者时,该Service会销毁
2. 主动结束:启动者主动调用unbindService方法,解绑Service。当没有绑定者时,该Service会销毁
Service解绑并销毁,会依次执行:
onUnbind(): Service解除绑定
onDestroy(): Service销毁
- 总结
一个完整的非绑定式Service的生命周期方法调用过程是:
onCreate --> onBind --> onUnbind --> onDestroy
以上就是 Android四大组件之Service的基本内容了,如果文章对你有用,欢迎支持哦,谢谢!
 
                   
                   
                   
                   
                             本文详细解析了AndroidService的两种启动方式——非绑定式startService和绑定式bindService的生命周期过程,包括各自的启动阶段、结束阶段和对应的方法调用序列。
本文详细解析了AndroidService的两种启动方式——非绑定式startService和绑定式bindService的生命周期过程,包括各自的启动阶段、结束阶段和对应的方法调用序列。
           
                     
       
           
                 
                 
                 
                 
                 
                
               
                 
                 
                 
                 
                
               
                 
                 扫一扫
扫一扫
                     
                     
              
             
                   193
					193
					
 被折叠的  条评论
		 为什么被折叠?
被折叠的  条评论
		 为什么被折叠?
		 
		  到【灌水乐园】发言
到【灌水乐园】发言                                
		 
		 
    
   
    
   
             
					 
					 
					


 
            