美文网首页
为什么使用服务而不直接使用线程

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

作者: 雨之都 | 来源:发表于2019-12-26 13:32 被阅读0次

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

1.Foreground process 前台线程

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

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

弹出dialog的情况?

3.service process

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

4.后台线程

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

5.空进程

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

优先级上面

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

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

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

相关文章

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

    首先对安卓里面几个相关的概念解释一下 1.Foreground process 前台线程 可以看到应用程序的前台,...

  • Java线程池的原理及几类线程池的介绍

    在什么情况下使用线程池? 使用线程池的好处: 线程池工作原理:为什么要用线程池? 诸如 Web 服务器、数据库服务...

  • redisTemplate使用scan模糊匹配key

    为什么不直接用keys 使用keys *进行模糊匹配引发Redis锁(因为redis单线程,keys会阻塞),造成...

  • Android线程池

    为什么使用线程池 线程是操作系统能进行运算调度的最小单元,在Java 中直接使用线程,给我们带来了很多便利,但是线...

  • ThreadPoolBuilder构建线程池

    引言 阿里巴巴&唯品会开发规范都提到了线程池使用规范,在多线程开发中,不建议直接使用Executors工具类构建线...

  • 线程池面试题

    转载文章 一.为什么要使用线程池?直接new个线程不是很舒服? 如果我们在方法中直接new一个线程来处理,当这个方...

  • @EnabelAsync

    @EnabelAsync注解的使用。如不指定自定义异步线程池直接使用@EnableAsync即可使用,若自定义线程...

  • 使用@Async注解创建多线程,自定义线程池

    说明 使用@Async注解创建多线程非常的方便,还可以通过配置,实现线程池。比直接使用线程池简单太多。而且在使用上...

  • 香港低价服务器如何选择?

    相信接触过服务器的站长都知道,香港的服务器既好用又方便,不用备案可以直接使用。而香港服务器购买后可以直接使用,免去...

  • 翻了ConcurrentHashMap1.7 和1.8的源码,我

    ConcurrentHashMap 思考:HashTable是线程安全的,为什么不推荐使用? HashTable是...

网友评论

      本文标题:为什么使用服务而不直接使用线程

      本文链接:https://www.haomeiwen.com/subject/stwkoctx.html