您的位置:首页 > 移动开发 > Android开发

Android服务Service详解(作用,生命周期,AIDL)系列文章-为什么需要服务呢?

2017-06-18 13:47 656 查看
Android服务Service详解(作用,生命周期,AIDL)

最近沉迷于上班,没有时间写博客了。解衣入睡,未眠,随起床写一篇博客压压惊!

##我们android系统为什么需要服务Service呢?

在某些场景下,我们需要应用程序长期在后台跑着,对吧!但是呢,我们的应用已经退到后台了。比如说,我们的播放音乐,我们希望可以退到后台以后,还可以屁颠屁颠地继续播放是吧。或许,你会说,我们起一下子线程播放,即使我们退出了应用,这个线程还是在跑的呀!也就是说,开启一个子线程,也可以没有界面地在后台跑嘛!

那么,我们先要了解一下在android系统下各进程的优先级了!先来看几个专有名词吧:

前台进程:你可以看到应用的界面,并且可以和它交互,这就是前台进程啦!

可视进程:你可以看到这个进程,但是不可以操作,这也是和前台进程的区别,就是不可以操作。

服务进程:长期于后台执行,没有界面也在跑的进程就叫做服务进程啦。

后台进程:所谓的后台进程就是程序最小化,本质上是没有退出的。

空进程:程序程序的组件没有任何的活动,也就是挂了嘛!

知道了前面的几大专用名词,我们要知道的是内存的大小是有限制的,也就是设备的大小是有限的。android操作系统需要合理地管理这些资源,根据优先级,保证用户可以使用等等。所以需要对这些进程进行一个优先级排列,当资源不够用的时候呢,就会去杀掉,或者说清空低级别的进程。

所以有了:

前台进程>可视进程>服务进程>后台进程>空进程

好,当你看到这里的时候,我们回到前面的,开一个子线程,执行一些没有界面也不会退出的任务。那么我们这样去操作:开启一个子线程以后,我直接最小化,这个程序,它是不是就变成了一个后台进程呢?对吧,当资源不够用的时候,它呢就把这个后台进程杀死,并且,这个子线程再也不会起来了!

但是,服务不一样,首先,比后台进程的优先级高,所以不那么容易杀死,另外,服务真的因为资源不够而被杀死了,等到资源释放够了,或者其他东西执行完了,够资源了,服务又自动地跑起来了!

所以说,我们为什么要用服务呢?

两点原因:

服务可以长期在后台运行,即使没有界面,优先级比较高,不容易被杀死。

即使服务被杀死了,也可以自动地被操作系统启动起来。

网易云视频:





社区网站:



内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
相关文章推荐