`
caiwb1990
  • 浏览: 309061 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

Android Service 服务详细讲解

阅读更多
Android 的Service 和 Handler一样很重,如需了解Handler,请查看Android Handler 异步消息机制

下面我们具体讲解一下Service:

Service概念及用途:
Service 是 Android 系统中的一种组件,它和Activity 的级别差不多,但又Activity不同,它是不能与用户交互的,但可以和其他组件进行交互。它不能自己运行,只能后台运行。
如果我们退出应用时,Service进程并没有结束,它仍然在后台运行,那我们什么时候会用到Service呢?比如我们播放音乐的时候,有可能想边听音乐边干些其他事情,当我们退出播放音乐的应用,如果不用Service,我们就听不到歌了,所以这时候就得用到Service了,又比如当我们一个应用的数据是通过网络获取的,不同时间(一段时间)的数据是不同的这时候我们可以用Service在后台定时更新,而不用每打开应用的时候在去获取。

Service生命周期:
Android Service的生命周期并不像Activity那么复杂,它只继承了onCreate(),onStart(),onDestroy()三个方法,当我们第一次启动Service时,先后调用了onCreate(),onStart()这两个方法,当停止Service时,则执行onDestroy()方法,这里需要注意的是,如果Service已经启动了,当我们再次启动Service时,不会在执行onCreate()方法,而是直接执行onStart()方法,具体的可以看下面的实例。

Service与Activity通信:
Service后端的数据最终还是要呈现在前端Activity之上的,因为启动Service时,系统会重新开启一个新的进程,这就涉及到不同进程间通信的问题了(AIDL)这一节我不作过多描述,当我们想获取启动的Service实例时,我们可以用到bindService和onBindService方法,它们分别执行了Service中IBinder()和onUnbind()方法。

Service 启动方式:
一、context.startService()
二、context.bindService();

使用Service之前必须在androidMainfest.xml 中注册
调用流程:

第一种:

启动:context.startService() ---> onCreate() ---> onStartCommand()
销毁:ontext.stopService()   ---> onDestroy();
如果Service还没运行,则Android会先调用onCreate()方法,然后再调用onStartCommand();
如果Service已经运行了,则只调用onStartCommand(),所以一个Service的onStartCommand(),方法可能会调用多次。

第二种:
启动:context.bindService() ---> onCreate() --->onBind();
销毁:onUnibind() ---> onDestroy()
onBind() 将返回给客户端一个IBind接口实例,IBind允许客户端调用服务的方法,比如得到Service允许状态或者其他操作这个时候调用者(Context,例如Activity)会和Service绑定在一起,Context退出了,Service就会调用onUnibind() ---> onDesytoy()相应退出









分享到:
评论

相关推荐

    Android service讲解文档ppt

    local service 以及remote service 讲解,广播接收器讲解,提供文档

    Android Service讲解 和 aidl 实现

    Android Service讲解 和 aidl 实现

    Android Service测试例子

    上面的这句话是官方的解释,这句化的第一句很明显的阐述了Service的使用场景,也就是说在不需要与用户进行交互(用户点击屏幕等触发事件的行为都是交互行为)的情景,以及某个操作需要在后台长时间运行的情况。...

    Android服务Service详解

    这是关于Android的Service服务的详细讲解,其中还有一些例子!

    Android服务Service_详解.doc

    Android服务Service_详解,详细讲解服务用法,很好的文档

    Android 开发 Service讲解.docx

    Android 开发 Service讲解

    Android应用开发详解

    Android Service组件,讲述了Android中的后台服务Service的概念、创建和使用,并详细讲解了远程服务的调用 第8章 Android广播事件处理 Broadcast Receiver Android 广播事件处理 Broadcast Receiver,讲述了广播...

    android service概念&JNI.pdf

    本文档讲解关于android service概念&JNI,希望对大家有所帮助。

    Android框架揭秘.pdf

    作者直接分析和整理了Android框架的主要源代码,并详细讲解了理解框架工作原理所需的各种基础知识和构成实际Android平台骨干的服务框架。其中的主要内容包括:通过启动程序了解Android框架的概要,移植Android以及...

    Android如何保证自己的服务被系统kill后又被系统重启?

    Android 保证自己的服务被系统kill后又被系统重启,我的博客里面有详细讲解!

    Android Service客户端测试例子

    上面的这句话是官方的解释,这句化的第一句很明显的阐述了Service的使用场景,也就是说在不需要与用户进行交互(用户点击屏幕等触发事件的行为都是交互行为)的情景,以及某个操作需要在后台长时间运行的情况。...

    Android studio 中创建AIDL Service

    在Android系统中有很多的Manager,wifi的管理类叫WifiManager,蓝牙的管理类叫...我在android源码中实现了一个自己写的AIDL例子,用以简单解释 文章地址:http://blog.csdn.net/kpioneer123/article/details/51219188

    Android Service和webp讲解源码 

    有关weby的使用,以及后台进程与应用线程间的区别应用

    Android框架揭秘(完整版pdf)

    作者直接分析和整理了Android框架的主要源代码,并详细讲解了理解框架工作原理所需的各种基础知识和构成实际Android平台骨干的服务框架。其中的主要内容包括:通过启动程序了解Android框架的概要,移植Android以及...

    ANDROID框架揭秘.pdf下载高清完整扫描版

    作者直接分析和整理了android框架的主要源代码,并详细讲解了理解框架工作原理所需的各种基础知识和构成实际android平台骨干的服务框架。其中的主要内容包括:通过启动程序了解android框架的概要,移植android以及...

    Android框架揭秘

    作者直接分析和整理了android框架的主要源代码,并详细讲解了理解框架工作原理所需的各种基础知识和构成实际android平台骨干的服务框架。其中的主要内容包括:通过启动程序了解android框架的概要,移植android以及...

    Android 蓝牙BLE详细讲解分析 -- 史上最全分析

    念:服务(Service)、特征(Characteristic)和描述(Descriptor)。他们的包 含关系如右边这个图所表示的:一个 Service 包含若干个 Characteristic,一个 Characteristic 可以包含若干 Descriptor。而 ...

    ANDROID框架揭秘

    作者直接分析和整理了android框架的主要源代码,并详细讲解了理解框架工作原理所需的各种基础知识和构成实际android平台骨干的服务框架。其中的主要内容包括:通过启动程序了解android框架的概要,移植android以及...

    Android开发Service详解

    文档具体讲解了Android四大组建中重要的一个Service的用法

    Android中Service(后台服务)详解

    主要介绍了Android中Service(后台服务)详解,本文讲解了Service的概念、作用、生命周期、启动方式和代码实例等内容,需要的朋友可以参考下

Global site tag (gtag.js) - Google Analytics