android----service服务

Android平台中的服务组件没有可是的界面,他主要用于后台服务,如背景音乐的播放、从互联网上下载文件等。服务组件与用户的交互需要通过Activity组件进行桥接,服务组件的使用有两种方式,如下图所示:

第一种方式是Activity调用服务组件,除了启动与停止服务之外,Activity无法与服务组件进行交互。这种方式通过startService方法启动一个服务,这个服务会一直存在与后台。第二种方式是通过Activity与服务组件使用绑定的方式进行连接的,连接成功后,Activity可以通过服务接口与服务组件进行通信,通过bindService方法连接。启动Service的方式也可以是第一种与第二种混合的方式。

关于Service的生命周期

1)startService()后,即使调用startService()方法的进程结束了,该Service仍然存在,即Activity无法与服务组件交互,直到有进程调用stopService()或者Service自己自杀stopSelf();

2)bindService()后,Service就和调用bindService()方法的进程同生共死;

3)两种方式混合使用时,即Activity A调用了startService()启动了该服务,Activity B调用了bindService()绑定了该服务,那么,只有当A调用stopService(),而且B调用了unbindService()时,服务才真正结束。

在Activity中启动服务时,同样需要定义Intent对象,该意向包含服务组件的信息,停止服务时也需要意向。与Activity组件一样,服务组件的定义也要遵循Android应用程序的框架,所有的服务组件必须继承与父类:Service,子类通过重载父类的方法来实现其特性。子类必须实现的方法是onBind(),还有两个重要的方法需要覆盖onCreate()、和onDestory()方法,和Activity一样,在创建和销毁Service时需要回调这两个方法。如果使用bindService()启动一个服务,那么Service就会回调onBind()方法。

 

 

posted @ 2013-01-16 17:33  mmy--博客园  阅读(365)  评论(0编辑  收藏  举报