一、Service的介绍
Service 是一个可以在后台执行长时间运行操作而不使用用户界面的应用组件。服务可由其他应用组件启动,而且即使用户切换到其他应用,服务仍将在后台继续运行。 此外,组件可以绑定到服务,以与之进行交互,甚至是执行进程间通信 (IPC)。 例如,服务可以处理网络事务、播放音乐,执行文件 I/O 或与内容提供程序交互,而所有这一切均可在后台进行。
服务分两种启动和绑定:
1、启动服务:应用组件通过startService(intent)的方式启动;
2、绑定服务:应用组件通过 bindService(intent, conn, Context.BIND_AUTO_CREATE)绑定服务;
参数说明
intent:该参数通过Intent指定要启动的Service。
conn:该参数是一个ServiceConnection对象,用于监听访问者和Service之间的连接情况。
flags:指定绑定时是否自动创建Service。(0或BIND_AUTO_CREATE)
接下来说说启动服务和绑定服务的区别
1)启动的服务与Activity之间是分离的不能进行通讯,即使启动它的组件被杀死,它仍然可以继续存在;而绑定服务与Activity有关可以进行通讯,与所绑定的组件共存亡。
2)启动的服务可以自杀stopSelf()也可以stopService(),但是绑定的服务只能通过绑定的组件解绑unbindService()。
3)它们的生命周期不同(马上介绍)
二、Service生命周期
先上个图吧
1、先说说启动服务的生命周期
从图中也可以看到主要有三个onCreate()、onStartCommand()、onDestory(),有些小伙伴在其他的资料里会看到onStart(),这个已经过期了,所以现在多半也都不考虑了,
2、绑定服务
onCreate()、onBind()、onUnbind()、onDestory()四个生命周期,但是要注意的是onBind()只被执行一次。
可以绑定已经启动的服务