如何在收到推送通知后让 android 应用程序在后台启动,以便它可以从服务器获取数据?

Posted

技术标签:

【中文标题】如何在收到推送通知后让 android 应用程序在后台启动,以便它可以从服务器获取数据?【英文标题】:How can I make an android app start in the background on receipt of a push notification so it can fetch data from the server? 【发布时间】:2022-01-19 09:53:21 【问题描述】:

我有一个可以接收推送通知的 android 应用。当应用程序在前台或后台运行时,我可以检测到传入的通知并执行后台获取到服务器。

但是,当应用程序未运行(尚未启动)时,推送通知会到达,但永远不会调用 FirebaseMessagingService.OnMessageReceived 方法。点击通知当然会启动应用程序,但我希望在此之前更新数据。该通知也是后台提取所需的“数据”通知。

如何使传入的通知在后台启动应用程序,以便它可以执行后台获取。

注意我在 ios 中运行良好,只是在 Android 中,当推送通知到达时我无法启动应用程序。

谢谢

【问题讨论】:

Afaik,当应用程序被杀死/不在后台内存中时从仪表板发送通知不会给你任何指示,你可以尝试检查传入的 Activity 的意图包,如果它包含任何与火力基地通知。或者你可以发送信息。通过data 使用POST 请求,该请求将始终触发OnMessageReceived. 谢谢@DarShan。我的意思是我正在发送一个“数据”通知,该通知可以在后台与应用程序一起正常工作,但是当它被杀死/未运行时,OnMessageReceived 不会触发。 FirebaseMessagingService 在这种情况下似乎没有激活。 这就是我所说的,如果应用程序被杀死并且您通过 POST 请求向 FCM 发送 data 参数,那么将调用 OnMessageReceived 【参考方案1】:

任何绊倒的人的答案是,我正在测试的三星设备无法启动,其他设备和模拟器工作正常。所以我需要在三星 A10 中找到一些阻止后台启动的设置。

【讨论】:

以上是关于如何在收到推送通知后让 android 应用程序在后台启动,以便它可以从服务器获取数据?的主要内容,如果未能解决你的问题,请参考以下文章

Android - 收到推送通知 FCM 后,如何在我的 Activity 中更新数据或 UI?

如何使用 GCM 在 android 设备上分别显示每个推送通知

在android中未收到推送通知

如果设备收到来自 fcm 的推送通知,如何向处于终止状态的 android 应用程序显示/通信/广播消息

如何清除状态栏上的推送通知警报 - android

如何通知您的 android 应用程序有关推送通知