防止系统杀死后台应用程序

Posted

技术标签:

【中文标题】防止系统杀死后台应用程序【英文标题】:Prevent System From Killing Background App 【发布时间】:2021-11-29 20:36:38 【问题描述】:

您好,我有一个用于跟踪队列的应用程序,因此当调用队列时,它会从 FCM 向该队列中的任何其他用户发送通知。我的问题是,如果系统在后台运行时杀死我的应用程序(我读到 android 会定期杀死后台应用程序),我能收到该通知吗?如果不是,那么是否有任何解决方案可以防止我的应用程序被系统杀死?谢谢。

【问题讨论】:

可能是***.com/a/53960344/529282 是的,当应用被杀死时你会收到通知。如果您使用的是 firebase 的 fcm 令牌。当应用程序处于前台、后台或终止后打开时,您必须配置 FirebaseMessaging。有关更多信息,这是 firebase Messaging 包的文档。 firebase.flutter.dev/docs/messaging/usage @ShahryarRafique 我明白了,但是如果应用程序被电池优化杀死怎么办?恐怕不会收到通知 【参考方案1】:

是的,您会收到消息的。实际消息通过网络从 Google 的服务器发送到设备上不会被杀死的进程(Android 的一部分)。当消息进入时,该过程将通过调用适当的 BroadcastReceiver 重新启动您的应用程序。请注意,如果消息不是高优先级,它将受打盹模式规则的约束。只要您的设备没有关闭/失去网络连接,就会收到它。

【讨论】:

您好,感谢您的回答,所以即使应用程序被系统杀死(某些带有电池管理器的手机会在后台杀死应用程序以进行电池优化)仍然收到通知?因为我不认为我可以要求用户关闭电池优化。谢谢 是的。因为对于 FCM 和其他推送消息系统,它是一个单独的进程,它从实际拥有侦听消息的套接字的电源管理规则中列入白名单。这个过程可以唤醒你的应用。 我明白了,非常感谢

以上是关于防止系统杀死后台应用程序的主要内容,如果未能解决你的问题,请参考以下文章

如何防止主线程ios杀死后台线程

防止iOS在几分钟后杀死App

APP在后台被系统杀死的六种主要原因

怎么让 Android 程序一直后台运行,像 QQ 一样不被杀死

【iOS】后台播报TTS(防止APP后台被杀死)

iOS为啥系统在后台使用位置杀死应用程序