`

Activity,Service生命周期

 
阅读更多
Service生命周期一般有两种使用方式
Service可以被启动或者允许被启动直到有人停止了它或者它自己停止了。在这种模式下,它通过Context.startService()方法开始,通过Context.stopService()方法停止。它可以通过Service.stopSelf()方法或者Service.stopSelfResult()方法来停止自己。只要调用一次stopService()方法便可以停止服务,无论调用了多少次的启动服务方法。

Service可以通过定义好的接口来编程,客户端建立一个与Service的链接,并使用此链接与Service进行通话。通过Context.bindService()方法来绑定服务,Context.unbindService()方法来关闭服务。多个客户端可以绑定同一个服务。如果Service还未被启动,bindService()方法可以启动服务。

这两种模式是完全独立的。你可以绑定一个已经通过startService()方法启动的服务。例如:一个后台播放音乐服务可以通过startService()和一个intend对象来播放音乐。可能用户在播放过程中要执行一些操作比如获取歌曲的一些信息,此时activity可以通过调用bindServices()方法与Service建立连接。这种情况下,stopServices()方法实际上不会停止服务,直到最后一次绑定关闭。

像一个activity那样,一个Service有些可以用来改变状态的生命周期方法。但是比activity的方法少,Service生命周期方法只有三个,而且都是public修饰。

void onCreate()

void onStart(Intent intent)

void onDestroy()

通过实现这三个生命周期方法,你可以监听Service的两个嵌套循环的生命周期。

Service整个生命周期
Service的整个生命周期是在onCreate()和onDestroy()方法之间。和activity一样,在onCreate()方法里初始化,在onDestroy()方法里释放资源。例如,一个背景音乐播放服务可以在onCreate()方法里播放,在onDestroy()方法里停止。

Service活动的生命周期
Service的活动生命周期是在onStart()之后,这个方法会处理通过startServices()方法传递来的Intent对象。音乐Service可以通过开打intent对象来找到要播放的音乐,然后开始后台播放。

Service停止时没有相应的回调方法,即没有onStop()方法。onCreate()方法和onDestroy()方法是针对所有的Services,无论它们是否启动。通过Context.startService()和Context.bindService()方法。然而,只有通过startService()方法启动的Service才会被调用onStart()方法。如果一个Service允许别人绑定,那么需要实现以下额外的方法:

IBinder onBind(Intent intent)

boolean onUnbind(Intent intent)

void onRebind(Intent intent)

onBind()回调方法会继续传递通过bindService()传递来的intent对像。onUnbind()会处理传递给unbindService()的intent对象。如果Service允许绑定,onBind()会返回客户端与服务互相联系的通信频道。如果建立了一个新的客户端与服务的链接,onUnbind()方法可以请求调用onRebind()方法。

下面的图表介绍了Service的回调方法,然而,它把通过startService()方法建立的服务从通过bindService()方法建立的服务分离开。记住任何服务,无果它怎样建立,都默认客户端可以链接,所以任何的Service能够接收onBind()和onUnbind()方法。





  • 大小: 79.9 KB
  • 大小: 57.9 KB
分享到:
评论

相关推荐

    Activity和Service生命周期及使用AIDL通信实例备份

    本篇将深入探讨Activity和Service的生命周期以及如何利用Android Interface Definition Language (AIDL)进行进程间通信。 Activity是Android应用程序的用户界面,它负责与用户交互。Activity的生命周期分为几个关键...

    Activity的生命周期(LifeCycle)

    ### Activity的生命周期(LifeCycle) #### 一、Activity在Android中的地位 在Android开发中,Activity作为四大组件之首,其重要性不言而喻。四大组件包括:Activity(负责界面控制)、Service(用于维持一个进程...

    Activity生命周期及Intent传值

    理解Activity的生命周期和Intent的传值机制对于Android开发者来说至关重要。 Activity的生命周期分为三个主要阶段:启动(Start)、运行(Running)和销毁(Destroy)。在启动过程中,Activity会经历onCreate()、...

    android Activity生命周期

    通过阅读`ActivityManagerService`和`ActivityThread`类的源码,我们可以了解系统如何管理Activity的生命周期。例如,`ActivityThread`中的`handleLaunchActivity()`方法触发了`onCreate()`,`handleResumeActivity...

    android Activity生命周期详解(图文)

    本文将深入探讨Activity的生命周期,结合源码分析和实际示例,帮助开发者更好地理解和控制Activity的行为。 首先,Activity的生命周期是Android系统管理组件的核心机制,它包括了创建、启动、暂停、恢复和销毁等几...

    Android Activity 生命周期(lifecycle)的研究

    除了Activity本身,还有Service、BroadcastReceiver等组件也有类似的生命周期管理。理解它们的生命周期可以帮助开发者更好地优化应用程序,提高用户体验,并避免内存泄漏等问题。 在项目中,Proguard.cfg文件用于...

    Android说明Service生命周期的代码例子

    Service生命周期的理解和正确管理对于优化应用程序性能至关重要。以下是一个关于Service生命周期的详细解析,结合代码示例来阐述如何在Android中操作Service。 1. **Service生命周期概述** Service的生命周期主要...

    Android Activity生命周期

    此外,Activity 生命周期还与其他组件的生命周期相关,例如 Fragment、Service 等。理解 Activity 生命周期是 Android 开发的基础,掌握了 Activity 生命周期,可以更好地开发 Android 应用程序。 在实际开发中,...

    Android Service生命周期及用法!

    `onDestroy()`则在Service被停止时调用,标志着Service生命周期的结束。值得注意的是,Service的生命周期管理需要谨慎处理,以避免内存泄漏和不必要的资源消耗。 Service与Activity之间的通信是通过Binder机制实现...

    Android课程第一次实验报告_Andorid应用程序Activity生命周期.docx

    本实验报告将深入探讨Android应用程序,尤其是Activity、Service和Intent Receiver的生命周期,并解释如何正确管理这些组件以避免不必要的进程销毁。 首先,Android应用通常在独立的Linux进程中运行。当应用需要...

    Activity的生命周期

    理解Activity的生命周期是每个Android开发者必须掌握的基础知识。在本文中,我们将深入探讨Activity的生命周期及其各个状态,以及如何在实践中有效地管理它们。 首先,Activity的生命周期包括以下几个主要阶段: 1...

    android activity 生命周期

    在Android开发中,Activity是构建用户界面的基本单元,它的生命周期是开发者必须深入理解的关键概念。在Android应用程序中,Activity扮演着展示用户交互界面并处理用户输入的角色。它并不直接提供界面,而是作为UI...

    android_Activity生命周期

    Activity生命周期是Android开发中至关重要的一环,因为它决定了应用如何响应用户操作和系统事件。理解Activity的生命周期对于编写高效、稳定且用户体验良好的应用至关重要。 Activity的生命周期由多个关键状态组成...

    Activity生命周期demon

    了解Activity的生命周期是每个Android开发者必备的基础知识。在Android系统中,Activity有多个状态,它们之间的转换构成了Activity的生命周期。在这个"Activity生命周期demon"中,我们将深入探讨Activity在不同状态...

    service的生命周期以及启动方式

    本教程将深入探讨Service的生命周期及其启动方式,并结合一个求平均值的Demo进行讲解。 首先,我们来理解Service的生命周期。Service有四个主要状态:创建(Created)、启动(Started)、绑定(Bound)和销毁...

    android项目教程Service生命周期.pptx

    - 未绑定Activity的Service生命周期图显示了startService()启动的过程,而绑定Activity的Service生命周期图则展示了bindService()启动的过程,两者在生命周期上有显著差异。 理解并熟练掌握Service的生命周期及其...

    Android中service基本用法,生命周期1

    startService启动方式,只在activity中启动和销毁,和activity关系不大,即使antivity退出,服务任然运行,比如后台放音乐,对应生命周期: bindService启动方式,和activity绑定后,和activity共存亡,activity...

    android activity 生命周期的深入学习

    Activity生命周期与Service(后台服务)相结合,可以在Service中执行长时间运行的任务,同时保持与Activity的交互。例如,使用`bindService()`可以在Activity与Service之间建立连接,实现通信。 七、生命周期回调的...

    android启动以及activity生命周期分析

    ### Android启动及Activity生命周期分析 在Android开发过程中,理解应用程序如何启动及Activity的生命周期是非常重要的。这不仅有助于我们更好地管理程序的状态,还能帮助我们在遇到内存泄漏等问题时进行快速定位和...

    Activity绑定Service(Kotlin)

    Service的生命周期与Activity不同,启动的Service在`onStartCommand()`返回后开始运行,直到调用`stopService()`或`stopSelf()`。绑定的Service在所有客户端解绑后自动停止。 11. **Service的生命周期管理** 注意...

Global site tag (gtag.js) - Google Analytics