四大组件之Service

2018-07-10  本文已影响0人  menteelin

一 Service介绍

Service是安卓四大组件之一,如果说Activity负责与用户进行前台交互,那么Service就负责提供后台服务。Service可以不依赖界面而在后台偷摸运行。

二 Service的生命周期

Service和Activity类似也有自己的生命周期,根据启动服务的方式不同,会走不同的生命周期方法。但与Activity比起来Service的生命周期更加简单,如下图:


Service生命周期.png

三 服务的启动方式

  1. startService开启服务
    使用startService方法开启服务,Service可以在后台长期运行,即使开启服务的Activity已经销毁(前提是未调用stopService方法)。第一次调用startService开启服务会调用Service的onCreate方法,接着是onStartCommand方法,当服务不再使用且将要被销毁时调用onDestroy方法。服务一旦开启再调用startService方法,不会再调用onCreate方法,会直接调用onStartCommand方法,也就是说服务只能被创建一次。
  2. bindService 开启服务
    一个Activity通过bindService方法绑定服务后,会调用Service的onCreate和onBind方法,onBind方法会返回一个IBinder对象的实例给Activity。在ServiceConnection的onServiceConnected方法中标志着Activity与Service建立了连接。此时另外一个ActivityB再调用bindService的时候,Service不会再走onCreate和onBind方法而是直接调用ActivityB中的onServiceConnected方法获得IBinder实例。此时关闭ActivityB并调用Service的unbindService方法不会触发Service的onUnbind和onDestroy方法,这两个方法是Service没有任何Activity与之绑定的时候才会调用。

四 关闭服务

如果是通过startService开启的服务需要调用stopService方法关闭服务;bindService开启服务,需要调用unbindService方法解绑服务,切记多次调用unbindService会抛出异常

服务的基本介绍就到这里了,为了解决服务中不能处理耗时任务的问题,谷歌还为我们提供了IntentService。

IntentService详解

上一篇 下一篇

猜你喜欢

热点阅读