我们有一个 Android 应用程序,它通过 FCM 和后台服务获取推送通知,即使应用程序未处于 Activity 状态也能正常工作。 我们遇到了一些问题,Android 操作系统会终止后台服务,在其他情况下会自动关闭我们应用程序的通知。 (通过自动关闭我们应用程序的通知)。
我们的第一个怀疑是 Android 6 及更高版本中引入的打瞌睡模式,但我们使用 AlarmManager 和 setAndAllowWhileIdle() 来调度进程,这应该足以在打瞌睡模式期间触发,如记录 here . 此外,我们发现在某些设备(如小米和华为设备)中存在推送通知无法正常工作和后台服务无法运行的已知问题,我们已对其进行处理。 但问题仍然存在于不同的设备类型和 Android 版本中。
对于这可能发生的原因有什么想法吗?谢谢!
最佳答案
当内存不足时,系统有时会终止服务。
在您的后台服务中,覆盖 onStartCommand()
并返回 START_STICKY
作为结果。
它会告诉系统,即使它会因为内存不足而想要终止您的服务,它也应该在内存恢复正常后立即重新创建它。
关于在某些情况下,带有推送通知和后台进程的 Android 应用程序会被终止,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44434920/