关于Service,有一篇文章讲的不错
来源:互联网 发布:有数据分析软件吗 编辑:程序博客网 时间:2024/04/20 08:19
相信大多数朋友对Service这个名词都不会陌生,没错,一个老练的Android程序员如果连Service都没听说过的话,那确实也太逊了。Service作为Android四大组件之一,在每一个应用程序中都扮演着非常重要的角色。它主要用于在后台处理一些耗时的逻辑,或者去执行某些需要长期运行的任务。必要的时候我们甚至可以在程序退出的情况下,让Service在后台继续保持运行状态。
,它们的线程id完全是一样的,由此证实了Service确实是运行在主线程里的,也就是说如果你在Service里编写了非常耗时的代码,程序必定会出现ANR的。
你可能会惊呼,这不是坑爹么!?那我要Service又有何用呢?其实大家不要把后台和子线程联系在一起就行了,这是两个完全不同的概念。Android的后台就是指,它的运行是完全不依赖UI的。即使Activity被销毁,或者程序被关闭,只要进程还在,Service就可以继续运行。比如说一些应用程序,始终需要与服务器之间始终保持着心跳连接,就可以使用Service来实现。你可能又会问,前面不是刚刚验证过Service是运行在主线程里的么?在这里一直执行着心跳连接,难道就不会阻塞主线程的运行吗?当然会,但是我们可以在Service中再创建一个子线程,然后在这里去处理耗时逻辑就没问题了。
额,既然在Service里也要创建一个子线程,那为什么不直接在Activity里创建呢?这是因为Activity很难对Thread进行控制,当Activity被销毁之后,就没有任何其它的办法可以再重新获取到之前创建的子线程的实例。而且在一个Activity中创建的子线程,另一个Activity无法对其进行操作。但是Service就不同了,所有的Activity都可以与Service进行关联,然后可以很方便地操作其中的方法,即使Activity被销毁了,之后只要重新与Service建立关联,就又能够获取到原有的Service中Binder的实例。因此,使用Service来处理后台任务,Activity就可以放心地finish,完全不需要担心无法对后台任务进行控制的情况。
转载自http://blog.csdn.net/guolin_blog/article/details/11952435
- 关于Service,有一篇文章讲的不错
- 一篇关于ReadWriteLock不错的文章
- 一篇关于Android Root不错的文章
- 看到一篇专门讲JAVA多线程的文章,挺不错
- service讲的不错
- 一篇不错的文章
- 一篇不错的文章
- 一篇不错的文章
- 发现一篇讲python深浅拷贝的文章。讲的不错
- 转载的一篇关于cap理论的不错的文章
- zz一篇不错的关于房价问题的文章
- 一篇不错的关于js"闭包"的文章
- 转发一篇写得不错的关于iptables的文章
- 整理一篇不错的关于软件加密的文章
- 一篇关于正则表达式学习的非常不错的文章
- 转载的一篇关于2006错误的文章,还不错
- 挺不错的一篇关于面向接口编程的文章
- 转发一篇写得不错的关于iptables的文章
- Redis的Java客户端Jedis的八种调用方式(事务、管道、分布式)介绍
- 日常学习
- 二叉树的前中后序遍历,递归和非递归方式
- JSP的开发学
- 2017.04.10:python数据可视化01
- 关于Service,有一篇文章讲的不错
- 欢迎使用CSDN-markdown编辑器
- Java EE基础知识学习(七)
- 简单购物车
- 第一讲 Android 屏幕适配基本概念
- photoshop打开图片没反应问题的解决以及改变图片尺寸
- bzoj 3275: Number 最小割
- 数据结构与算法(c++)--prim算法
- LeetCode 148. Sort List