我的应用程序中有一个服务会被自动杀死。我已经在Android 4.0(冰淇淋三明治)中测试了我的应用程序,它运行正常,但是当我在Android 4.4.2中运行相同的应用程序时,服务会自动被杀死。谁能告诉我服务被自动杀死的情况?
答案 0 :(得分:0)
Android系统在RAM处于压力(低内存)时终止进程,它需要通过杀死当前在后台运行的应用程序的最低优先级来回收RAM资源。因此,您可以将Service
的优先级设置为前景,尽管此线程在后台运行。
来自docs:
已启动的服务可以使用startForeground(int,Notification)API将服务置于前台状态,系统认为该服务是用户主动了解的内容,因此在内存不足时不会成为查杀的候选者。 (从理论上讲,服务在当前前台应用程序的极端内存压力下被杀死仍然是可能的,但实际上这不应该是一个问题。)
答案 1 :(得分:0)
为防止服务被Android内存管理系统杀死,您应该从特定服务启动On Oning通知,并在服务结束时将其解除