onUnbind() No returned In no particular order, onStartCommand()and onBind(are called Yes Client calls bindService() onBind( onRebind() Service is running and clients are Service is running bound to it All clients unbind by calling unbindService( onUnbindO Service also stopped via stopSolf() No or stopService()? Yes onDestroy() Service is shut down
7.1 Service简介 ·后动方式和绑定方式的结合 口这两种使用方法并不是完全独立的,在某些情况下可以 混合使用 ■以MP3播放器为例,在后台的工作的Service通过 Context.startService()后动某个音乐播放,但在播放过程中 如果用户需要暂停音乐播放,则需要通过 Context.bindService(O获取服务链接和Service对象实例,进 而通过调用Service对象实例中的函数,暂停音乐播放过程 ,并保存相关信息 在这种情况下,如果调用Context.stopService()并不能够停 止Service,.需要在所有的服务链接关闭后,Service扌能够 真正的停止
7.1 Service简介 n 启动方式和绑定方式的结合 q 这两种使用方法并不是完全独立的,在某些情况下可以 混合使用 n 以MP3播放器为例,在后台的工作的Service通过 Context.startService()启动某个音乐播放,但在播放过程中 如果用户需要暂停音乐播放,则需要通过 Context.bindService()获取服务链接和Service对象实例,进 而通过调用Service对象实例中的函数,暂停音乐播放过程 ,并保存相关信息 n 在这种情况下,如果调用Context.stopService()并不能够停 止Service,需要在所有的服务链接关闭后,Service才能够 真正的停止
7.2本地服务 ·本地服务的调用者和服务都在同一个程序中,是不需 要跨进程就可以实现服务的调用 ·本地服务涉及服务的建立、启动和停止,服务的绑定 和取消绑定,以及如何在线程中实现服务 7.2.1服务管理 口服务管理主要指服务的启动和停止 Service是一段在后台运行、没有用户界面的代码
7.2 本地服务 n 本地服务的调用者和服务都在同一个程序中,是不需 要跨进程就可以实现服务的调用 n 本地服务涉及服务的建立、启动和停止,服务的绑定 和取消绑定,以及如何在线程中实现服务 n 7.2.1 服务管理 q 服务管理主要指服务的启动和停止 q Service是一段在后台运行、没有用户界面的代码
7.2本地服务 ■7.2.1服务管理 o为了使Service工作,一般需要重载onCreate()、onStart(0和 onDestroy()。.Android系统在创建Servicel时,会自动调用 onCreate(O,用户一般在onCreate()完成必要的初始化工作 ,例如创建线程、建立数据库链接等 口在Service关闭前,系统会自动调用onDestroy()函数释放所 有占用的资源。通过Context.startService(Intent)后动Service onStart()则会被调用,重要的参数通过参数Intent传递给 Service 口当然,不是所有的Service都需要重载这三个函数,可以根 据实际情况选择需要重载的函数
7.2 本地服务 n 7.2.1 服务管理 q 为了使Service工作,一般需要重载onCreate()、onStart()和 onDestroy()。Android系统在创建Service时,会自动调用 onCreate(),用户一般在onCreate()完成必要的初始化工作 ,例如创建线程、建立数据库链接等 q 在Service关闭前,系统会自动调用onDestroy()函数释放所 有占用的资源。通过Context.startService(Intent)启动Service ,onStart()则会被调用,重要的参数通过参数Intent传递给 Service q 当然,不是所有的Service都需要重载这三个函数,可以根 据实际情况选择需要重载的函数
7.2本地服务 ■7.2.1服务管理 o在完成Service代码和在AndroidManifest..xml文件中注册 后,下面来说明如何启动和停止Service。.有两种方法后 动Service,显式启动和隐式启动 口显式启动需要在Intent中指明Servicej所在的类,并调用 startService(Intent)后动Service,示例代码如下 1 final Intent servicelntent=new Intent(this,RandomService.class); 2 startService(serviceIntent); ■Intent指明了后动的Service)所在类为RandomService
7.2 本地服务 n 7.2.1 服务管理 q 在完成Service代码和在AndroidManifest.xml文件中注册 后,下面来说明如何启动和停止Service。有两种方法启 动Service,显式启动和隐式启动 q 显式启动需要在Intent中指明Service所在的类,并调用 startService(Intent)启动Service,示例代码如下 1 final Intent serviceIntent = new Intent(this, RandomService.class); 2 startService(serviceIntent); n Intent指明了启动的Service所在类为RandomService