码迷,mamicode.com
首页 > 移动开发 > 详细

Android(java)学习笔记225:服务(service)之为什么使用服务

时间:2015-09-11 09:13:36      阅读:174      评论:0      收藏:0      [点我收藏+]

标签:

1.服务 service
长期在后台运行的进程,一般没有应用程序界面

2.进程线程和应用程序之间的关系
应用程序开启,系统启动一个Linux进程,所有的组件都是运行在同一个进程的同一个线程(main)里面。

(1)Process lifecycle 进程的生命周期
Android操作系统会尽可能长期的保留应用程序的进程,系统根据进程的优先级回收进程,释放内存。
如果进程被系统回收了,开启的所有的线程都不在了

(2)
Foreground process 前台进程
你还能看到应用程序的界面,并且可以操作这个应用程序

Visible process 可视进程
你可以看到这个应用程序,但是操作不了

Service process 服务进程
应用程序带一个后台运行的服务,服务没有停止

Background process 后台进程
应用程序被最小化,但是没有退出

Empty process 空进程
应用程序没有任何活动的组件了

优先级排序:前台进程 > 可视进程 服务进程 后台进程 空进程

(3)问题:如果开启子线程,也可以没有界面,长期后天运行。为什么不用子线程,而是使用service?

    如果使用子线程(后台进程)实现后台运行,一旦系统发现内存不足,就会根据优先级回收进程,释放内存;
服务(服务进程)系统发现内存不足,由于服务进程优先级中等,不会最先回收,而且就算回收了服务进程,
Android系统一旦发现内存充足的时候,就会自动重启服务进程。






















Android(java)学习笔记225:服务(service)之为什么使用服务

标签:

原文地址:http://www.cnblogs.com/hebao0514/p/d451707ea4a03524388e20aca3be43b8.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!