我的应用程序同时具有服务和活动。
假设我的应用程序正在运行。过了一会儿,由于内存不足,Android操作系统会在我的应用程序中杀死该服务。我的问题是,Android是否可能仅杀死该服务并使该进程保持活动状态?或者当服务被杀死时,该过程也必须被杀死?
感谢。
答案 0 :(得分:3)
我99.99%肯定这一点:如果服务进行,那么也会有这个过程。杀死服务的条件非常苛刻,例如在内存不足的情况下。我自己的经验是,当服务终止时整个应用程序被杀死。服务和流程紧密相连。是的,您可以在不中断流程的情况下手动停止服务,但我几乎可以肯定,当操作系统因内存不足而终止您的服务时,再见过程。
见Hackbod的回答和评论:Android service killed
请参阅http://developer.android.com/reference/android/app/Service.html和onLowMemory:
当整个系统内存不足时调用此方法,并且 我想积极运行过程,试图收紧腰带。 虽然没有定义调用它的确切点, 通常它会在所有后台进程的时间周围发生 被杀,这是在达到杀戮过程之前 我们希望避免杀戮的托管服务和前台用户界面。
背景信息:http://about-android.blogspot.com/2010/07/lifecycle-of-android-application.html
这也很有趣:Will we leak the android service connection if the client's process is killed by android?