安卓服务被杀

  • 本文关键字:服务 android
  • 更新时间 :
  • 英文 :


我的应用程序中有一个服务会自动终止。我在Android 4.0(Ice Cream Sandwich)中测试了我的应用程序,它运行良好,但当我在Android 4.4.2中运行相同的应用程序时,服务会自动终止。有人能告诉我服务自动终止的场景吗?

Android系统在RAM有压力(内存不足)时会杀死进程,它需要通过杀死当前在后台运行的应用程序的最低优先级来回收RAM资源。因此,您可以将Service的优先级设置为前台,尽管该线程在后台运行。

来自文档:

启动的服务可以使用startForeground(int,Notification)API将服务置于前台状态,系统认为它是用户主动意识到的,因此在内存不足时不会被杀死。(理论上,在当前前台应用程序的极端内存压力下,服务仍然有可能被终止,但在实践中,这不应该是一个问题。)

为了防止服务被android的内存管理杀死,你应该从特定的服务启动一个On Going通知,并在你的服务结束时将其关闭

最新更新