“电池保护程序”功能可以杀死我的音乐服务

时间:2016-03-28 13:57:35

标签: android service streaming

我正在为Android制作音乐流媒体应用。

在这个应用程序中,我有一个Service负责从HTTP服务器播放音频。在玩之前,我确保startForeground()并获得部分WakeLock,这样我的服务就不会被杀死。我也得到WifiLock,以防万一。

只要我的手机没有处于“省电模式”,服务就可以正常工作。一旦我打开电池并断开手机电源,我的服务就会被火烧死!

不幸的是,似乎onDestroy()似乎没有被调用,因此startForeground()的通知仍然可见,即使服务已经死亡。

手机是三星Galaxy S6,上面装有Android 6.0.1。

两个问题:

  1. 有没有一种方法可以让服务保持活力,尽管电池保护程序很简单?
  2. 如果没有,我想知道至少我的服务被杀,以便我可以做一些清理(删除通知和内部资料)。
  3. 有什么建议吗?

1 个答案:

答案 0 :(得分:0)

这可以通过在单独的进程中使用前台服务 来保存部分唤醒锁。

android:process="process_name"

(文件:http://developer.android.com/guide/topics/manifest/service-element.html

请注意,您不应在多进程环境中使用SharedPreferences

另请参阅此问题:https://code.google.com/p/android/issues/detail?id=193802