serviceandroid生命周期
A. Android-Android中service与application的生命周期有关系吗
有关系的,在Android中进程按优先级可以分为五类,优先级从高到低排列:
1.前台进程 该进程包含正在与用户进行交互的界面组件,比如一个Activity。
2.可视进程 该进程中的组件虽然没有和用户交互,但是仍然可以被看到。
3.服务进程 该进程包含在执行后台操作的服务组件,比如播放音乐的Service。
4.后台进程 该进程包含的组件没有与用户交互,用户也看不到 Service。
5.空进程 没有任何界面组件、服务组件,或触发器组件。
Android系统是进程托管的,也就是说进程都是由系统来管理,系统会按照特定的算来来回收这些进程。在回收中秉承几个原则:
1. 尽量延长进程的生命周期,不到必须的情况下不会回收,因为系统回收进程会影响用户体验
2. 按优先级从低到高进行回收
3. 同等优先级的进程越近使用越晚回收。
通过上面这些解释,进程过一段时间后是会被回收的,但要遵循上面的这些原则,service和application的生命周期有关,只要进程被回收,那么它所占用的所有资源将被回收。
B. android service有什么用
Service是Android系统中的四大组件之一,它是一种长生命周期的,没有可视化界面,运行于后台的一种服务程序。如果service是被开启的,那么它的活动生命周期和整个生命周期一同结束。如果service是被绑定的,它们它的活动生命周期是在onUnbind()方法返回后结束。
service积极活动的生命时间(active lifetime)是从onStartCommand()或onBind()被调用开始,它们各自处理由startService()或bindService()方法传过来的Intent对象。
(2)serviceandroid生命周期扩展阅读
service整体的生命时间是从onCreate()被调用开始,到onDestroy()方法返回为止。和activity一样,service在onCreate()中进行它的初始化工作,在onDestroy()中释放残留的资源。
比如,一个音乐播放service可以在onCreate()中创建播放音乐的线程,在onDestory()中停止这个线程。onCreate()和onDestroy()会被所有的service调用,不论service是通过startService()还是bindService()建立。