在我的应用程序中,有一项服务检查传入的音频呼叫(通过互联网)。我正面临服务已被空闲后服务器杀死,但通知图标显示为服务正在运行,而在电话设置中显示该服务当前正在运行。我在Google Play上发现了一些应用程序,即使在内存不足的情况下服务也不会被杀死。
我添加了START_STICKY以在停止时重新启动它。我也让它作为前景运行。
我希望我的服务不被杀死。我可以知道它的程序。 (如果服务被终止,则应反映在通知和电话设置中。)
答案 0 :(得分:1)
阅读完这个问题之后,马上想要引用你的博客文章,这真的帮助我了解了android如何实现多任务,以及服务适合这种情况。
“http://android-developers.blogspot.com/2010/04/multitasking-android-way.html”
但是,总而言之,没有办法真正防止被杀,并且,当android决定它需要回收内存时,“它会粗暴地做,只是杀死这个服务所在的进程”。
所以,有两件事 - 首先,您必须开发您的应用程序,以便在此服务被杀死的情况下,它将恢复。没有办法真正保证不会发生这种情况。
其次,您应该通过响应内存事件来最小化发生这种情况的可能性 - 请在此处记录:
http://developer.android.com/reference/android/content/ComponentCallbacks2.html#onTrimMemory(int)
基本上,您可以开发应用程序,以便在Android即将开始查杀过程时收到通知,当您收到该通知时,可以通过释放内存来进行响应。