SerVice 讲解
1、SerVice 是Android 四大组件之一。他与Activity最相似,他们都代表可执行的程序。
2、SerVice 与Activity的区别在于:SerVice 一直运行在后台,他没有用户的界面,所以绝对不会到前台来。一旦SerVice被启动,他就与Activity一样。它完全具有自己的生命周期。
3、开发者开发Service的步骤与开发Activity很相似,开发SerVice组件需要先开发一个SerVice的子类,然后在AndroidMainifest.xml文件中配置该SerVice,配置时可以通过<intent-filter.../>元素指定他被那些Intent启动。
Service使用-创建、配置Service
--》1、定义一个继承Service的子类。
--》2、在AndroidMainifest.xml配置该SerVice
注意:SerVice 和Activity还有一点相似,他们都是从Context派生出来的,因此他们都可以调用Context里定义的如getResources()、getContentResolver()等方法。
SerVice:生命周期
1、abstract IBinder onBind(Intent intent) :此方法在子类中必须实现。他返回的是一个IBinder对象,应用程序可以通过该对象与SerVice组件进行通讯。
2、Void onCreate() 当该Service第一次创建后将立即回调该方法
3、Void onDestory() 当该SerVice被关闭的时候会调用。
4、void onStartCommand(Intent intent,int flags,int startld) 该方法早起版本是void onStart(Intent intent,int startld),每次客户端调用startService(Intent)方法启动该SerVice时都会回调该方法。
5、boolean onUnbind(Intent intent) 当该SerVice上绑定的所有客户端都断开连接时将会被回调。
例如下面代码:
定义了上面的Service之后,就要在AndroidMainifest.xml配置该Service,如图:
注意:Service在程序中运行,有两种方式
1、通过Context的startService()方法:通过该方法启动Service,访问者与Service之间没有关联,即时访问者退出了,Service还是在运行。
2、通过Context的bindService()方法,该方法启动Service,访问者与Service是绑定在一起的。访问者退出,那么Service也会退出。