刚才又看了android的官方文档,对它的进程优先级和service理解得更多了。android为了管理内存释放有限的空间,会根据优先级杀掉一些进程,进程优先级越低的优先被清除。从高到低依次为:
1. foreground process
2. visible process
3. service process
4. background process
5. empty process
这5种优先级别,其中empty process是为了下次在启动该程序而缓存一些数据而保留的进程,这就是为什么当我们退出程序后,长按Home键还能看到该程序进程图标的原因。
之前一直都不明白用Service有什么好处,因为它还是在主线程跑,要做耗时的工作还得在Service里面另起一个线程,倒不如直接就这样做而不用Service。原来用了Service来处理是为了保证这个工作有较高的优先级,从上面可看到它排在第3,如果不通过Service直接启动线程则当Activity退出或暂停的时候,该进程很容易被杀掉,用Service可以有效地保护起来。