在进程或者线程中开启一个emptyService延长生命周期

来源:互联网 发布:java socket服务器编程 编辑:程序博客网 时间:2024/05/01 00:11

一些用来处理特殊事务的后台进程或者线程,他们不存在activity,没有用户交互界面, 属于android进程分类中的第4种背景进程,

4.  背景进程
包含目前不为用户所见的activity(Activity对象的 onStop() 方法已被调用)。这些进程与用户体验没有直接的联系,可以在任意时间被杀死以回收内存供前台进程、可视进程以及服务进程使用。一般来说,会有很多背景进程运行,所以它们一般存放于一个LRU(最后使用)列表中以确保最后被用户使用的activity最后被杀死。如果一个activity正确的实现了生命周期方法,并捕获了正确的状态,则杀死它的进程对用户体验不会有任何不良影响。

 

而service进程属于第3种,优先级高于背景进程,

3.  服务进程
是由 startService() 方法启动的服务,它不会变成上述两类。尽管服务进程不会直接为用户所见,但它们一般都在做着用户所关心的事情(比如在后台播放mp3或者从网上下载东西)。所以系统会尽量维持它们的运行,除非系统内存不足以维持前台进程和可视进程的运行需要。

 

因此,对于这些处理特殊事务的后台进程或者线程,可为其开启一个emptyService,空服务,不做任何处理,而只是为了将其优先级提高至服务进程的优先级,这样如果长时间存在就不容易被系统杀死。

原创粉丝点击