Android四大组件分别为Activity(活动)、Service(服务)、BroadCast Receiver(广播接收者)、Content Provider(内容提供者)
Service(服务)
Service(服务)是运行于后台的组件,没有用户界面,适用于后台下载、音乐播放等场景。
创建完一个Service后会自动在清单文件中添加
<service
android:name=".MyService2"
android:enabled="true"
android:exported="true"></service>
若是手动写一个类继承自Service,则需要手动在清单文件中添加。enabled表示能否实例化该服务,exported表示该服务能否被其他应用调用。
1.生命周期
onCreate()
第一次创建该服务时调用。
onDestory()
被销毁时调用。
onStartCommand()
用户通过startService()方法启动该服务时调用。
onBind()
用户通过bindService()方法启动该服务时调用。
onUnbind()
用户通过UnBindService()方法断开该服务时调用。
2.启动方式
Service启动方式有普通启动startService()和绑定启动bindService()
普通启动
Intent intent = new Intent(this, MyService.class);
startService(intent);//启动服务
stopService(intent);//关闭服务
绑定启动
Intent intent = new Intent(this, MyService.class);
bindService(intent, myConn, flags);//绑定服务
UnBindService(myConn);//解绑服务
其中myConn类继承自ServiceConnection,用于监听连接的两者的状态,若绑定成功,则调用onServiceConnected()方法,若解除绑定则调用onServiceDisconnected()方法。
flags指绑定时是否自动创建Service,若为0,则不自动创建,为“BIND_AUTO_CREATE”则自动创建。
绑定启动和普通启动的区别在于,绑定启动中,应用组件和服务绑定之后,服务的生命周期和组件同步,当组件销毁后,服务也会销毁,普通启动则不会。