我有一个用于播放音频的服务。它是用START_STICKY
创建的,当它被告知播放音乐时调用startForeground()
,当它被告知停止播放音乐时调用stopForeground()
。Android的前台服务在某些条件下被杀死
即使将应用程序从4.2.1的任务管理器中删除后,该服务仍能正常运行并播放音乐。然而,如果应用程序被刷出并且应用程序的主屏幕/锁屏部件与之互动,或者如果我尝试在服务中尝试登录sendBroadcast()
,则该服务将被无法解决。
我找不到任何会导致崩溃,没有内存不足警告,该服务不绑定到任何东西,只是:
10-09 17:14:42.186: I/ActivityManager(2591): Killing 18400:com.xperia64.timidityae/u0a10079: remove task
10-09 17:14:42.236: W/ActivityManager(2591): Scheduling restart of crashed service com.xperia64.timidityae/.MusicService in 5000ms
的dumpsys活动服务命令总是产生这一点,因为它应该是:
ProC# 8: adj=prcp /FS trm= 0 22326:com.xperia64.timidityae/u0a10079 (fg-service)
我的应用程序做一些繁重的JNI MIDI-> WAV处理,但即使我玩一个基本的MP3用MediaPlayer
,服务杀害仍然存在。另外,如果这有所作为,我会通过按钮进行自定义通知。我也尝试强制PARTIAL_WAKELOCK
,但这也没有帮助。
FWIW,我似乎记得遇到一些与您的症状相符的http://b.android.com问题的评论。唉,我不记得细节。 – CommonsWare 2014-10-09 22:57:50