我正在为Android制作音乐流媒体应用。
在这个应用程序中,我有一个Service
负责从HTTP服务器播放音频。在玩之前,我确保startForeground()
并获得部分WakeLock
,这样我的服务就不会被杀死。我也得到WifiLock
,以防万一。
只要我的手机没有处于“省电模式”,服务就可以正常工作。一旦我打开电池并断开手机电源,我的服务就会被火烧死!
不幸的是,似乎onDestroy()
似乎没有被调用,因此startForeground()
的通知仍然可见,即使服务已经死亡。
手机是三星Galaxy S6,上面装有Android 6.0.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