为什么使用服务而不直接使用线程

2019-12-26  本文已影响0人  雨之都

首先对安卓里面几个相关的概念解释一下

1.Foreground process 前台线程

可以看到应用程序的前台,并且可以操作这个应用程序

2.Visible process 可以看到这个进程,但是操作不了

弹出dialog的情况?

3.service process

应用程序带有一个或者多个服务在运行

4.后台线程

应用程序被最小化,没有退出

5.空进程

应用程序没有任何活动的组件

优先级上面

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

如果使用子线程而不是使用服务来代替的话,系统在发现内存不足的时候,就会优先回收这样的进程,但是如果有服务的话,由于服务有一定的优先级,就不会并轻易地杀死,并且系统还开始在系统资源不紧张的时候重新创建服务。

服务里面默认是不能执行耗时的操作的,因为服务运行在主线程,也就是UI线程里面,因此最好需要在服务里面另开另外的线程去执行程序

上一篇下一篇

猜你喜欢

热点阅读