Android Service

学习Service相关知识点:

android service 的基础知识,生命周期,service分类,运行地点(本地服务,远程服务),运行类型(前台服务,后台服务),功能(可通信与不可通信)。serviceThread的区别。

service基础

概述:

AndroidService是一个在后台执行长时间运行操作,而不需要和用户交互的应用程序组件。主要是用来后台处理网络事务,播放音乐,执行文件操作和content provider进行交互等。

service到底是什么?

service作为Android的四大组件之一,程序退出的时候,仍能在后台服务,即保活。在后台执行一系列计算任务,耗时的操作建议在单独的线程中执行。

服务时一种可以在后台长时间的运行,没有用界面的应用组件,即是activity被销毁也不会受到影响,service运行在主线程当中,不能做长时间的运行操作。

service不能做耗时操作,无用户界面,生命周期长,并在后台运行。本地服务运行在主线程中,主线程停止,服务则停止,远程服务,不受activity的影响;前台服务,用户可见,后台服务,用户不可见,前台被终止,用户知道,后台用户则无法知道;可通信的后台服务,两种启动模式,随着调用者退出而销毁服务,不可通信,即使调用者退出,service也在。

service和Thread的区别

Thread开启子线程,在其耗时操作,耗时操作可以开启线程来完成,Thread是程序的最小单元,service运行时在主线程上,不能耗时操作,相比Threadservice并不是那么独立。

对于,Service服务的分两种类:

启动状态:通过startService(),绑定状态:通过bindService()(英文理解:开启服务,绑定服务)。

Call to startService -> onCreate() -> onStartCommand() -> Service running -> onDestroy()

Call to bindService() -> onCreate() -> onBind() -> onUnbind() -> onDestroy()

service的工作流程

Service的工作过程

生命周期

这两种服务各有各的特色。不过在理解之前,先看看它们的生命周期情况(图片来源于官方):

onCreate():创建时调用
onStartCommand():启动时调用
onBind():被绑定时调用
onUnbind():被解绑时调用
onDestroy():停止时调用

startService()

stopService()

bindService()

unbindService()

onCreate() -> onStartCommand() -> onDestroy()

onCreate() -> onBind() -> onUnbind() -> onDestroy()

结语

  • 本文主要讲解 Android Service用法知识点的讲解

  • 下面我将继续对Java、 Android中的其他知识 深入讲解 ,有兴趣可以继续关注

  • 小礼物走一走 or 点赞

Android Service用法知识点的讲解的更多相关文章

  1. Android Fragment用法知识点的讲解

    Android Fragment用法的讲解 碎片,它的出现是为了更好展示UI的设计,让程序更加得到充分的展示.Fragment的出现,如微信的额主界面包含多个Fragment,使得微信功能更加简洁明了 ...

  2. android service 的各种用法(IPC、AIDL)

    http://my.oschina.net/mopidick/blog/132325 最近在学android service,感觉终于把service的各种使用场景和用到的技术整理得比较明白了,受益颇 ...

  3. Android Service生命周期及用法

    Service概念及用途:Android中的服务,它与Activity不同,它是不能与用户交互的,不能自己启动的,运行在后台的程序,如果我们退出应用时,Service进程并没有结束,它仍然在后台运行, ...

  4. Android Service完全解析,关于服务你所需知道的一切(下)

    转载请注册出处:http://blog.csdn.net/guolin_blog/article/details/9797169 在上一篇文章中,我们学习了Android Service相关的许多重要 ...

  5. 【转】Android Service完全解析,关于服务你所需知道的一切(下) ---- 不错

    原文网址:http://blog.csdn.net/guolin_blog/article/details/9797169 转载请注册出处:http://blog.csdn.net/guolin_bl ...

  6. Android Service(下)

    转载请注册出处:http://blog.csdn.net/guolin_blog/article/details/9797169 在上一篇文章中,我们学习了Android Service相关的许多重要 ...

  7. [转]Android Service完全解析,关于服务你所需知道的一切

      目录(?)[+] Android Service完全解析,关于服务你所需知道的一切(上) 分类: Android疑难解析2013-10-31 08:10 6451人阅读 评论(39) 收藏 举报 ...

  8. Android Service完全解析,关于服务你所需知道的一切(下) (转载)

    转自:http://blog.csdn.net/guolin_blog/article/details/9797169 转载请注册出处:http://blog.csdn.net/guolin_blog ...

  9. Android Service完全解析(下)

    转载http://blog.csdn.net/guolin_blog/article/details/9797169 在上一篇文章中,我们学习了Android Service相关的许多重要内容,包括S ...

随机推荐

  1. A bean with that name has already been defined in DataSourceConfiguration$Hikari.class

    A bean with that name has already been defined in DataSourceConfiguration$Hikari.class 构建springcloud ...

  2. texmaker报错:could not start command 解决

    我当时文件命名加了邮箱,引入特殊字符@,然后就报错了

  3. Java的学习05

    今天学习了,Java中的LinkedList类.这个类需要用到链表的知识,以前一直以为,只有c/c++有链表.今天才知道,原来其他语言.也有链表,而且还是双向链表. /** * 自定义一个链表 * @ ...

  4. JAVA中的配置文件XML

    一:概念 1.XML  Extensible markup Language 可拓展标记语言 2.功能:存储数据(配置文件,在网络中传输数据) 3.html和xml的区别 3.1xml标记全是自定义的 ...

  5. Nginx – rewrite 配置 URL重写及301跳转原理图

    Nginx – rewrite 配置 URL重写 官网:http://nginx.org/en/docs/http/ngx_http_rewrite_module.html 语法:rewrite re ...

  6. Flask最强攻略 - 跟DragonFire学Flask - 第一篇 你好,我叫Flask

    首先,要看你学没学过Django 如果学过Django 的同学,请从头看到尾,如果没有学过Django的同学,并且不想学习Django的同学,轻饶过第一部分 一. Python 现阶段三大主流Web框 ...

  7. C#Winform的DEV下拉下拉控件介绍

    LookupEdit 下拉单选,可搜索,下拉展示为一个table: ComboxEdit 下拉单选,可当做text使用,输入数据源中没有的项,只有显示值: CheckcomboxEdit 下拉多选,可 ...

  8. SpringMCVC拦截器不拦截静态资源

    SpringMCVC拦截器不拦截静态资源 SpringMVC提供<mvc:resources>来设置静态资源,但是增加该设置如果采用通配符的方式增加拦截器的话仍然会被拦截器拦截,可采用如下 ...

  9. React-router4 第七篇 Recursive Paths 递归路径

    https://reacttraining.com/react-router/web/example/recursive-paths import React from 'react' import ...

  10. Idea+maven+testNG+Selenium+ReportNG自动化框架搭建

    1.Idea创建一个空的Maven项目 创建后默认项目目录如图所示 2.配置pom.xml文件 <?xml version="1.0" encoding="UTF- ...