Android基础之Service

来源:互联网 发布:淘宝卖家一个月不发货 编辑:程序博客网 时间:2024/05/01 03:20

Android基础之初识Service

Service是什么

    服务(Service)是Android四大组件之一,其在后台执行长时间运行的操作,不提供用户界面。当启动一个服务,它将一直在后台运行,即使用户切换到另一个应用程序。一个组件可以绑定到一个服务与它交互,甚至执行进程间通信(IPC)。默认情况下,服务是运行在启动它的应用程序的主线程中的。

Service的生命周期

官方给出的Service的生命周期流程图如下:


这里写图片描述

①onCreate():当Service第一次创建时回调onCreate()。该方法只被回调一次。

②onStartCommand():当其他组件调用startService()方法请求启动Service时回调onStartCommand()。Service启动后会一直在后台运行,即使用户切换到另一个应用程序或者启动它的组件被销毁了。当Service任务执行完以后,需自行调用stopSelf() 或 其他组件调用stopService()方法停止Service。

③onBind():当其他组件调用bindService()方法请求绑定Service时回调onBind()。该方法返回一个IBinder接口,IBinder接口是Service与绑定的组件进行交互的桥梁。若Service未绑定其他组件,则该方法应返回null。

④onDestroy():当Service被销毁时回调onDestroy(),在该方法中做一些释放资源的操作。

Service的基本类型

①Started
    当应用以startService()方法被启动时,服务就会开始在后台无限期的运行。通常一个启动的服务执行一个单一的操作而且不会返回结果给调用者。当这个动作执行完成的时候,服务应该停止。
②Bound
    当应用以bindService()方法被启动时,服务就会被绑定。一个绑定的服务会提供一个客户端服务器接口,允许组件与服务进行交互,执行进程间通信(IPC)。绑定服务的生存期和被绑定的应用程序组件一致。

不同的Service

①Local Service:

    依附在主进程上的服务。

②Remote Service:

    在一个独立进程上的服务。

③前台Service:

    会在通知栏显示Notification。

④后台Service:

    默认的服务。

⑤startService启动的Service:

    以startService()方法被启动的服务。

⑥bindService启动的Service:

    以bindService()方法绑定的服务。

⑦以startService启动后又使用bindService 绑定的Service:

    该Service将会一直在后台运行,onCreate方法只会调用一次,onStartCommand的调用次数与startService调用的次数一致。只调用unBindService不会停止Service,必须再调用stopService或stopSelf来停止服务。

0 0
原创粉丝点击