`

关于Service的使用

阅读更多
Service是android 系统中的一种组件,它跟Activity的级别差不多,但是他不能自己运行,只能后台运行,并且可以和其他组件进行交互。Service的启动有两种方式:context.startService() 和 context.bindService()。

使用context.startService() 启动Service是会会经历:
context.startService()  ->onCreate()- >onStart()->Service running
context.stopService() | ->onDestroy() ->Service stop 


如果Service还没有运行,则android先调用onCreate()然后调用onStart();如果Service已经运行,则只调用onStart(),所以一个Service的onStart方法可能会重复调用多次。

stopService的时候直接onDestroy,如果是调用者自己直接退出而没有调用stopService的话,Service会一直在后台运行。该Service的调用者再启动起来后可以通过stopService关闭Service。

使用使用context.bindService()启动Service会经历:
context.bindService()->onCreate()->onBind()->Service running
onUnbind() -> onDestroy() ->Service stop

onBind将返回给客户端一个IBind接口实例,IBind允许客户端回调服务的方法,比如得到Service运行的状态或其他操作。这个时候把调用者(Context,例如Activity)会和Service绑定在一起,Context退出了,Srevice就会调用onUnbind->onDestroy相应退出。

所以调用bindService的生命周期为:
onCreate --> onBind(只一次,不可多次绑定) --> onUnbind --> onDestory。

service可以在和多场合的应用中使用:
     比如播放多媒体的时候用户启动了其他Activity这个时候程序要在后台继续播放,
     比如检测SD卡上文件的变化,再或者在后台记录你地理信息位置的改变等等,总之服务嘛,总是藏在后头的。



分享到:
评论

相关推荐

    IOTService_使用说明_202007081

    本文将详细介绍"IOTService"的使用说明,包括其工具安装、串口服务器设备连接、功能特性以及测试指导。IOTService是一个专为物联网(IoT)设计的服务平台,它提供了丰富的功能,如串口服务器设备管理、邮件报警、远程...

    Java Service Wrapper使用总结

    Java Service Wrapper 使用总结 Java Service Wrapper 是一种可以将 Java 应用程序发布为可安装的服务的解决方案,它提供了一种简单的方式来将 Java 应用程序打包成一个独立的服务。下面是 Java Service Wrapper ...

    Service服务的各种使用方式

    在Android开发中,Service是四大组件之一,它用于在后台执行...理解并熟练运用各种Service使用方式,能够帮助开发者实现丰富的后台功能,提升应用体验。通过ServiceDemo项目,初学者可以更直观地学习和实践这些知识点。

    android service使用详解

    本篇文章将深入探讨如何在Android中使用Service。 一、Service的基本概念 Service是Android系统中的一个特殊组件,它可以在后台运行,不与用户界面直接交互。Service可以启动(Start)或绑定(Bind),两种方式各有...

    Service的使用方式

    本文将深入探讨`AccessibilityService`的使用方式,这是Service的一种特殊类型,主要用于帮助残障人士或者实现自动化操作。对于初学者来说,理解并掌握AccessibilityService的用法是非常有价值的。 首先,我们要...

    Android Service使用示例

    本示例将详细介绍如何使用 `Service`,特别是 `Start Service` 和 `Bind Service` 两种启动方式,以及如何实现 `Service` 与 `Activity` 之间的数据交互。 ### 1. Start Service `Start Service` 主要用于启动一个...

    service的使用小demo

    这个“service的使用小demo”应该包含了一些关于如何创建、启动和停止Service的基本示例,以及可能如何与Activity交互的代码。 Service主要分为两种类型:START_STICKY和START_NOT_STICKY。START_STICKY表示服务被...

    Service使用demo(Eclipse)

    本示例"Service使用demo(Eclipse)"将深入讲解如何在Eclipse环境中集成并运用Service,同时结合BroadcastReceiver实现更灵活的应用场景。 首先,我们来详细了解Service的基本概念。Service主要分为两种类型:START...

    ServiceNow 基础手册

    ServiceNow平台的基础手册涵盖了该平台的基本使用方法,包括如何导航、管理记录以及搜索等操作。以下是对手册内容的详细解读。 首先,ServiceNow用户界面是与应用程序和信息交互的主要方式。ServiceNow的用户界面...

    android的关于service的小Demo

    本示例“android的关于service的小Demo”旨在演示如何在Activity中设置数据,并通过Service进行更新。我们将深入探讨Service的基本概念、生命周期、启动方式以及如何在Activity和服务之间通信。 1. Service基础: ...

    Service的入门,主要介绍service的概念和使用方法

    16.Service学习(2).rar可能进一步讲解了onStartCommand()和onBind()的差异和使用场景,以及如何处理Service的生命周期管理,例如如何正确处理Service的暂停和恢复,以及如何在Service中处理异常情况。 最后,17....

    Service 的基础使用方法

    本教程将深入探讨Service的基础使用方法,适合初学者掌握。 首先,我们需要理解Service的基本概念。Service并非一个单独的UI元素,而是运行在后台的一个组件,它可以执行一些耗时的任务,比如播放音乐、网络通信等...

    service使用及发送通知

    本教程将深入探讨如何使用`Service`,以及在绑定的`Service`中发送`Notification`。 ### 1. 创建和启动Service 创建一个`Service` 需要继承 `android.app.Service` 类,并重写必要的生命周期方法,如 `onCreate()`...

    Service 启动与停止

    它在onHandleIntent()方法中处理Intent,每个Intent都在自己的工作线程中运行,处理完后自动停止Service,简化了Service的使用。 七、Service的并发处理 Service默认在主线程运行,如果执行耗时操作,应将任务放入...

    android service使用小demo

    android service使用的小demo 包括startService stopService bindService unbindService 两种开启、关闭service的小demo

    RemoteService的使用详解

    本文将深入解析RemoteService的使用,并提供Server端和Client端的代码示例及详细注释。 **一、RemoteService基本概念** RemoteService是Android中的一个抽象概念,它允许一个应用程序组件(如Activity)在另一个...

    进程内Activity和service使用Binder通信代码备份

    3. Activity绑定Service并使用Binder:在Activity中,我们可以通过bindService()方法绑定到Service,并在onServiceConnected()回调中获取到Binder对象。之后就可以调用Service中定义的方法了。 ```java public ...

    Android中Service组件的使用

    启动Service通常使用Context的startService()方法,而停止Service则使用stopService()。例如: ```java Intent intent = new Intent(this, MyService.class); startService(intent); // 启动Service stopService...

    SpringBoot 使用Java Service Wrapper 部署Windows服务

    在本文中,我们将深入探讨如何使用Java Service Wrapper将SpringBoot应用部署为Windows服务。 首先,理解SpringBoot的核心特性是必要的。SpringBoot通过默认配置、内嵌Servlet容器(如Tomcat或Jetty)以及自动配置...

Global site tag (gtag.js) - Google Analytics