@
yuriko 嗯,感觉你没有 get 到楼主的需求。不知道面试官说的“显然”是想说线程的,这个“显然”的结论是怎么得出来的。
实力有限,不明白面试官问题的意图是什么,为啥不开始的时候问下他呢,也当学习了
确实是有场景是需要另开进程的,只不过平时自己工作中没有碰上这种场景
最近在做定位的功能,要在后台一直定位,但是很容易被系统杀死,所以在找解决 service 保活的方案,查到了下面这篇文章,就提到了另开进程保活推送服务。
在 Android 系统中, App 对于自己应用的生命周期是基本没有控制力,系统能在任意时候将你的进程杀死,且不会发出任何通知,也会在它认为合适的时候把你叫起来。进程前后台切换也同样不会给出任何通知。不过进程的生死控制也还是有一些规矩的,大体上来说就是进程占的资源越多(内存, CPU 时间等等),对于用户越不重要(前台进程->可视进程->服务进程->后台进程->空进程),越容易被干掉。因此,进程应当尽量小巧,且具有高的优先级。
如果一个应用本身就很小巧的话,一个进程就完全足够了,主线程负责 UI ,另起一个后台线程跑一个服务。而如果应用比较庞大的话,将推送服务独立出来则是一个更好的选择。主进程负责用户交互和主要的业务逻辑,占用庞大的资源,当退到后台后,随时被杀死都无所谓。推送进程则仅仅负责与服务器交互,保持最小限度的业务逻辑处理。
引用:
http://zhoujianghua.com/2015/09/20/summary_of_im_android/