在某些情况下,带有推送通知和后台进程的 Android 应用程序会被终止

标签 android notifications background-process

我们有一个 Android 应用程序,它通过 FCM 和后台服务获取推送通知,即使应用程序未处于 Activity 状态也能正常工作。 我们遇到了一些问题,Android 操作系统会终止后台服务,在其他情况下会自动关闭我们应用程序的通知。 (通过自动关闭我们应用程序的通知)。

我们的第一个怀疑是 Android 6 及更高版本中引入的打瞌睡模式,但我们使用 AlarmManager 和 setAndAllowWhileIdle() 来调度进程,这应该足以在打瞌睡模式期间触发,如记录 here . 此外,我们发现在某些设备(如小米和华为设备)中存在推送通知无法正常工作和后台服务无法运行的已知问题,我们已对其进行处理。 但问题仍然存在于不同的设备类型和 Android 版本中。

对于这可能发生的原因有什么想法吗?谢谢!

最佳答案

当内存不足时,系统有时会终止服务。

在您的后台服务中,覆盖 onStartCommand() 并返回 START_STICKY 作为结果。

它会告诉系统,即使它会因为内存不足而想要终止您的服务,它也应该在内存恢复正常后立即重新创建它。

关于在某些情况下,带有推送通知和后台进程的 Android 应用程序会被终止,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44434920/

相关文章:

ios - 在 ios 中获取事件的本地通知警报类型或本地通知警报 View 按钮单击事件

ios - 是否可以在给定时间自动运行启动应用程序(在后台)?

android - 通过 ADB : "can' t find service"拔下设备

java - Android(Eclipse)找不到google-play-services_lib.apk尝试了多种解决方案

android - 将 design.widget.BottomNavigationView 放置在相关布局的底部

java - 从BroadcastReceiver获取通知标题(直接回复Android N)

android - Android 中应用程序之间的 LED 通知优先级

java - Spring 的后台作业支持

ios - 什么是 Xcode "Background Processing"后台模式?

android - 后退按钮不起作用