service是运行在后台的服务程序,地位和activity是并列的,不提供可视化界面和用户进行交互。
一、启动服务程序:
1、Intent serviceIntent = new Intent();
//设置Intent的action属性
serviceIntent.setAction(com.dannyAndroid.service.action.MUSIC_SERVICE);
//启动service
startService(serviceIntent);
2、通过bindService绑定Service
//ServiceConnection参数
ServiceConnection conn = new ServiceConnection(){
//重写链接和断开回调函数
……
}
//第一参数:Intent对象,第二参数:判断service绑定和断开是否成功,第三参数:设置绑定动作的选项,一般设置为BIND_AUTO_CREATE表示绑定是自动创建Service
Intent serviceIntent = new Intent();
bindService(serviceIntent,conn,Service.BIND_AUTO_CREATE);
————————————————注意————————————
需要再AndroidManifest.xml文件中声明service的标签
<service android:enabled="true" android:name=".MusicService"></service>
二、service的生命周期
1、通过startService()方法启动的service
onCreate--onStart--onDestroy
必须显式调用Context.stopService()来结束service
2、通过bindService()绑定Service
onCreate--onBind--onUnbind--onDestroy
不需要显式调用Context.stopService()来结束service,系统会自动调用
——————————注意——————————
上面两种生命周期是可以结合在一起的,可以先启动再绑定,但无论对同个service进行多少次启动或绑定,onCreate方法只会执行一次。如果Service已经被绑定,则显式调用stopService将不能停止该service,必须先执行UnbindService方法,才能同个stopService方法停止并关闭service。