`

关于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...

    android的关于service的小Demo

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

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

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

    ServiceNow 基础手册

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

    Service 的基础使用方法

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

    service使用及发送通知

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

    Service 启动与停止

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

    RemoteService的使用详解

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

    android service使用小demo

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

    进程内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)以及自动配置...

    Android之Service实现比较大小

    使用`START_NOT_STICKY`时,如果Service被系统杀死,系统不会自动重启Service,除非开发者通过其他方式(如广播接收器)再次明确启动它。这种模式适用于一次性任务或者任务可以延迟到系统资源充足时再执行的情况。 ...

Global site tag (gtag.js) - Google Analytics