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()方法。
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()方法。
发表评论
-
ScrollView嵌套Edittext
2015-04-08 18:26 839scrollview 中加入多个控件如 edittext 后会 ... -
android 布局式跑马灯,非TextView
2015-04-07 10:51 493如题,简单的实现了跑马灯效果,把Scroll.java放入an ... -
Android圆角图片
2015-03-11 17:44 692my_wane_shape.xml 快速圆角背景边框实现, ... -
SQLite多线程读写实践及常见问题总结
2015-02-13 17:06 941基本操作的部分,大家都很熟悉了,这里根据个人切身经验,总结了一 ... -
android加速度感应
2015-01-19 10:25 14711.android测量数据 (1)android设备坐标系 ... -
MatrixCursor的使用
2015-01-19 09:49 1043ContentProvider对外共享数据的时候的query( ... -
Android 获取控件的宽高高级用法(MeasureSpec)
2015-01-15 14:23 995一个MeasureSpec封装了父 ... -
Android_GridView_GridView概述及实现水平滑动
2015-01-14 17:14 11501.GridView简介 GridView是ViewGroup ... -
Android MMS,SMS之常用Uri
2014-09-19 16:32 1321Android MMS,SMS之常用Uri Android ... -
android短彩信查询以及MMS表结构
2014-09-19 16:31 2230android短信的数据库的Uri是不公开的, 读取起来时灰常 ... -
使用Android自带DownloadManager下载文件
2014-08-19 11:04 766SDK在API Level 9中加入了DownloadMan ... -
android textview里链接点击事件,增加图片
2014-08-07 16:45 1143Android系统默认给TextView插入图片提供了三种方 ... -
android Home事件汇总
2014-07-18 11:30 1001方法一:android 4.0以后无法通过更改页面的类型来 ... -
Android风格与主题(style and theme)
2014-07-16 16:35 670Android xml风格和主题文 ... -
Android中播放声音的两种方法
2014-05-30 15:09 667在Android中,音频、视 ... -
android 杀进程方法
2014-05-26 17:43 1005关闭应用的方法: 1.System.exit(0); ... -
android service 生命周期
2014-04-21 16:16 786有了 Service 类我们如何启动他呢,有两种方法: ... -
解决ADB端口被占用的问题
2014-04-21 16:14 830究其源就是adb server没启动 经过分析整理如下: ... -
输入法隐藏打开
2013-12-23 14:24 816首次进入activity,如果有个edittex ... -
google经纬度互转
2013-07-11 16:34 934https://developers.google.com/ ...
相关推荐
本篇将深入探讨Activity和Service的生命周期以及如何利用Android Interface Definition Language (AIDL)进行进程间通信。 Activity是Android应用程序的用户界面,它负责与用户交互。Activity的生命周期分为几个关键...
### Activity的生命周期(LifeCycle) #### 一、Activity在Android中的地位 在Android开发中,Activity作为四大组件之首,其重要性不言而喻。四大组件包括:Activity(负责界面控制)、Service(用于维持一个进程...
理解Activity的生命周期和Intent的传值机制对于Android开发者来说至关重要。 Activity的生命周期分为三个主要阶段:启动(Start)、运行(Running)和销毁(Destroy)。在启动过程中,Activity会经历onCreate()、...
通过阅读`ActivityManagerService`和`ActivityThread`类的源码,我们可以了解系统如何管理Activity的生命周期。例如,`ActivityThread`中的`handleLaunchActivity()`方法触发了`onCreate()`,`handleResumeActivity...
本文将深入探讨Activity的生命周期,结合源码分析和实际示例,帮助开发者更好地理解和控制Activity的行为。 首先,Activity的生命周期是Android系统管理组件的核心机制,它包括了创建、启动、暂停、恢复和销毁等几...
除了Activity本身,还有Service、BroadcastReceiver等组件也有类似的生命周期管理。理解它们的生命周期可以帮助开发者更好地优化应用程序,提高用户体验,并避免内存泄漏等问题。 在项目中,Proguard.cfg文件用于...
Service生命周期的理解和正确管理对于优化应用程序性能至关重要。以下是一个关于Service生命周期的详细解析,结合代码示例来阐述如何在Android中操作Service。 1. **Service生命周期概述** Service的生命周期主要...
此外,Activity 生命周期还与其他组件的生命周期相关,例如 Fragment、Service 等。理解 Activity 生命周期是 Android 开发的基础,掌握了 Activity 生命周期,可以更好地开发 Android 应用程序。 在实际开发中,...
`onDestroy()`则在Service被停止时调用,标志着Service生命周期的结束。值得注意的是,Service的生命周期管理需要谨慎处理,以避免内存泄漏和不必要的资源消耗。 Service与Activity之间的通信是通过Binder机制实现...
本实验报告将深入探讨Android应用程序,尤其是Activity、Service和Intent Receiver的生命周期,并解释如何正确管理这些组件以避免不必要的进程销毁。 首先,Android应用通常在独立的Linux进程中运行。当应用需要...
理解Activity的生命周期是每个Android开发者必须掌握的基础知识。在本文中,我们将深入探讨Activity的生命周期及其各个状态,以及如何在实践中有效地管理它们。 首先,Activity的生命周期包括以下几个主要阶段: 1...
在Android开发中,Activity是构建用户界面的基本单元,它的生命周期是开发者必须深入理解的关键概念。在Android应用程序中,Activity扮演着展示用户交互界面并处理用户输入的角色。它并不直接提供界面,而是作为UI...
Activity生命周期是Android开发中至关重要的一环,因为它决定了应用如何响应用户操作和系统事件。理解Activity的生命周期对于编写高效、稳定且用户体验良好的应用至关重要。 Activity的生命周期由多个关键状态组成...
了解Activity的生命周期是每个Android开发者必备的基础知识。在Android系统中,Activity有多个状态,它们之间的转换构成了Activity的生命周期。在这个"Activity生命周期demon"中,我们将深入探讨Activity在不同状态...
本教程将深入探讨Service的生命周期及其启动方式,并结合一个求平均值的Demo进行讲解。 首先,我们来理解Service的生命周期。Service有四个主要状态:创建(Created)、启动(Started)、绑定(Bound)和销毁...
- 未绑定Activity的Service生命周期图显示了startService()启动的过程,而绑定Activity的Service生命周期图则展示了bindService()启动的过程,两者在生命周期上有显著差异。 理解并熟练掌握Service的生命周期及其...
startService启动方式,只在activity中启动和销毁,和activity关系不大,即使antivity退出,服务任然运行,比如后台放音乐,对应生命周期: bindService启动方式,和activity绑定后,和activity共存亡,activity...
Activity生命周期与Service(后台服务)相结合,可以在Service中执行长时间运行的任务,同时保持与Activity的交互。例如,使用`bindService()`可以在Activity与Service之间建立连接,实现通信。 七、生命周期回调的...
### Android启动及Activity生命周期分析 在Android开发过程中,理解应用程序如何启动及Activity的生命周期是非常重要的。这不仅有助于我们更好地管理程序的状态,还能帮助我们在遇到内存泄漏等问题时进行快速定位和...
Service的生命周期与Activity不同,启动的Service在`onStartCommand()`返回后开始运行,直到调用`stopService()`或`stopSelf()`。绑定的Service在所有客户端解绑后自动停止。 11. **Service的生命周期管理** 注意...