首页 > 解决方案 > 当应用程序在后台/被杀死时,在 Firebase onMessageReceived 中调用暂停 apiFetch 请求

问题描述

我正在使用 Firebase 通知从服务器获取更改。当数据有任何变化时,服务器会发送 fcm 通知。这是代码:

override fun onMessageReceived(p0: RemoteMessage) {
    val res = p0.data
    val noti = p0.notification
    val id: String? = res["id"]
    val title: String? = noti.title
    val body: String? = noti.body

    id.toInt().let {
       GlobalScope.launch(Dispatchers.IO) {
          try {
             var isActive = true
             res["is_active"].let{st->
                st?.let{act->
                   if(act == "false"){
                       isActive = false
                   }
                }
             }
             projRepo.roomChangeActiveStatus(it, isActive)
         } catch (e: java.lang.Exception) {                           
             FirebaseCrashlytics.getInstance().recordException(e)
         }
      }
    }
}

当应用程序处于前台时,代码工作正常,当应用程序处于后台/被杀死时它会显示通知,但当应用程序处于后台/被杀死时它不会调用 GlobalScope 函数。

标签: androidkotlinfirebase-cloud-messagingkotlin-coroutines

解决方案


推荐阅读