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. Rocket MQ 1 - 用

    参考 http://www.iocoder.cn/categories/RocketMQ/ ; https://www.jianshu.com/nb/16219849 首先上启动方法,分别启动name ...

  2. 最适合入门的Laravel中级教程(一)

    Laravel 是一个全栈框架: 我们使用 Laravel 开发业务常见有 3 个方向: 前端页面和后端逻辑混合的应用 主要是面向对 SEO 有需求的项目: 比如说新闻资讯博客文章等: 一般在控制器中 ...

  3. ligbox 插件介绍

    浏览器支持情况:一般情况都支持.最好是jQuery v1.x + lightbox.js,这样的组合IE6,IE7,IE8也支持! 1 light插件的下载地址:https://pan.baidu.c ...

  4. ArcGIS自定义工具箱-字段分割

    ArcGIS自定义工具箱-字段分割 联系方式:谢老师,135-4855-4328,xiexiaokui#qq.com 目的:用指定分割符分割字段, 用例:湖南省长沙市=>湖南/长沙 数据源: 使 ...

  5. spring okhttp3

    准备工作 在pom.xml文件中增加以下依赖 <dependency> <groupId>com.squareup.okhttp3</groupId> <ar ...

  6. 初学c# -- 开始学directx

    这些天对directx有兴趣了,开始慢慢学,先学基础,找了好些资料,为毛都写的辣么长呢,学习精简下来就几行. 安装个directx sdk,在win10里面文件夹C:\Windows\Microsof ...

  7. linux下安装python,Django,虚拟环境

    linux下python安装步骤: 1.下载python3源码包 wget https://www.python.org/ftp/python/3.6.6/Python-3.6.7.tgz 2.下载p ...

  8. android 设置LOGO和app名称

    mipmap和drawable目录都可以存放图片,一般情况下,将LOGO文件存放在mipmap目录,普通图片放到drawable目录. 一.在mipmap目录添加LOGO图片 在mipmap目录右键- ...

  9. JavaScript RegExp.$1

    我们不生产代码 我们只是代码的搬运工 JavaScript RegExp.$1 RegExp 是javascript中的一个内置对象.为正则表达式. RegExp.$1是RegExp的一个属性,指的是 ...

  10. ubuntu中的环境变量

    写这句话,给自己提个醒吧,添加路径(所谓的环境变量):系统会去相应的目录中找可执行文件,到时候只要输入命令名字,可以不用输入完整的路径