7.1 Service简介 ·Service生命周期 ▣onCreate()函数 ■Servicel的生命周期开始,完成Service的初始化工作 口onStart()函数 ·后动线程 onDestroy()函数 ■Servicel的生命周期结束,释放Service所有占用的资源 调用 st art Ser vi ce() on eat e() Ser vi ce Ser vi ce onSt art() 正在运行 被停止 onDest roy() 关闭Ser vi ce 后动Ser vi ce
7.1 Service简介 n Service生命周期 q onCreate()函数 n Service的生命周期开始,完成Service的初始化工作 q onStart() 函数 n 启动线程 q onDestroy() 函数 n Service的生命周期结束,释放Service所有占用的资源 调用 st ar t Ser vi ce( ) 启动 Ser vi ce onCr eat e( ) onSt ar t ( ) Ser vi ce 正在运行 Ser vi ce 被停止 onDest r oy( ) 关闭 Ser vi ce
7.1 Service简介 Service生命周期 口Service生命周期包括 ·完整生命周期从onCreate()开始到onDestroy()结束,在 onCreate()中完成Servicel的初始化工作,在onDestroy()中释 放所有占用的资源 ■活动生命周期从onStart()开始,但没有与之对应的停止” 函数,因此可以粗略的认为活动生命周期是以onDestroy() 标志结束 Service的使用方式一般有两种 口后动方式 口绑定方式
7.1 Service简介 n Service生命周期 q Service生命周期包括 n 完整生命周期从onCreate()开始到onDestroy()结束,在 onCreate()中完成Service的初始化工作,在onDestroy()中释 放所有占用的资源 n 活动生命周期从onStart()开始,但没有与之对应的“停止” 函数,因此可以粗略的认为活动生命周期是以onDestroy() 标志结束 n Service的使用方式一般有两种 q 启动方式 q 绑定方式
Component calls 7.1 Service简介 startService() ·后动方式 onCreate() 口通过调用Context..startService(0后动 Service,通过调用Context..stopService() 或Service.stopSelf)停止Service。因此 onStartCommand( Service一定是由其它的组件启动的 ,但停止过程可以通过其它组件或自 身完成 Service is running Active 口在后动方式中,启动Service的组件不 Lifetime 能够获取到Servicel的对象实例,因此 无法调用Service中的任何函数,也不 The service is stopped by itself or a client 能够获取到Service中的任何状态和数 据信息 口 能够以启动方式使用的Service,需要 具备自管理的能力,而且不需要从通 onDestroy() 过函数调用获取Service的功能和数据 Service is shut down Unbounded
7.1 Service简介 n 启动方式 q 通过调用Context.startService()启动 Service,通过调用Context.stopService() 或Service.stopSelf()停止Service。因此 ,Service一定是由其它的组件启动的 ,但停止过程可以通过其它组件或自 身完成 q 在启动方式中,启动Service的组件不 能够获取到Service的对象实例,因此 无法调用Service中的任何函数,也不 能够获取到Service中的任何状态和数 据信息 q 能够以启动方式使用的Service,需要 具备自管理的能力,而且不需要从通 过函数调用获取Service的功能和数据
Component calls 7.1 Service简介 bindService() 绑定方式 onCreate( Servicel的使用是通过服务链接( Connection)实现的,服务链接能够获取 Servicel的对象实例,因此绑定Servicel的 onBind() 组件可以调用Service中实现的函数,或 直接获取Service中的状态和数据信息 Service is running (clients are o使用Servicel的组件通过 Active bound to it) Context..bindService()建立服务链接,通过 Lifetime All clients unbind by calling Context..unbindService()停止服务链接 unbindService() 0 如果在绑定过程中Service没有后动, Context.bindService()会自动启动Service, onUnbind() 而且同一个Service可以绑定多个服务链 接,这样可以同时为多个不同的组件提 供服务 onDestroy() Service is shut down Bounded
7.1 Service简介 n 绑定方式 q Service的使用是通过服务链接( Connection)实现的,服务链接能够获取 Service的对象实例,因此绑定Service的 组件可以调用Service中实现的函数,或 直接获取Service中的状态和数据信息 q 使用Service的组件通过 Context.bindService()建立服务链接,通过 Context.unbindService()停止服务链接 q 如果在绑定过程中Service没有启动, Context.bindService()会自动启动Service, 而且同一个Service可以绑定多个服务链 接,这样可以同时为多个不同的组件提 供服务
Component calls Component calls startService() bindService() 的 onCreate() onCreate() onStartCommand( onBind() Service is running Service is running (clients are Active bound to it) Lifetime All clients unbind by calling unbindService( The service is stopped by itself or a client onUnbind() onDestroy() onDestroy() Service is Service is shut down shut down Unbounded Bounded