有两张描述Service生命周期的图片,感觉挺不错的,拿来给大家共享一下。有空再来描述一下其中的细节问题。
service的生命周期并不复杂,它继承了三个重要的方法,即onCreate(),onStart()和onDestroy()三个重要的方法。当我们第一次启动service的时候,需要先调用onCreate()方法,然后调用onStart()方法,类似于程序中的变量要先声明,在使用一样。如果该service实例已经开启,那么也就不在调用onCreate()方法,而是直接调用onStart()方法,开启service。当我们需要销毁service的时候,会调用onDestroy()方法。
但是这里有两个需要注意的地方,第一:启动service有两种方法,一种是startService(),一种是bindService()。两者在本质上并没有太大的区别,前者是从Activity启动的话,Activity退出之后,依然能够在后台正常运行,而后者在Activity退出之后,也会跟着被销毁。第二:当我们启动service服务,如果直接在应用管理中杀死service或者使用第三方的管理工具,手机管家等软件,直接清理的话,service是不会调用onDestroy()方法的。
==================================================华丽的分割线=================================================
我们在调用Service的时候,需要注意两点问题,第一:调用的service组件,必须要在xml文件中注册,如果调用的时候,发现服务无法启动,或者提示找不到该类,应该检查在xml文件中是否有注册说明。第二:类似于音乐播放器这样的服务,当我们退出界面,播放服务依然是在运行的,不会随着我们的界面退出而退出,但是当我们再次进入的时候,服务也不应该是重新启动,而是继续播放。