FirebaseMessagingService

FirebaseMessagingService

本文介绍了FirebaseMessagingService 默认在后台运行吗?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

FirebaseMessagingService 是否像 IntentService 一样在后台运行?

Does the FirebaseMessagingService run in the background similar to how an IntentService operates?

我看到 FirebaseMessagingService 范围 Service 不在后台运行,但我想确定我是否应该在FirebaseMessagingService 异步或同步.

I see that FirebaseMessagingService extents Service which does not run in the background, but I'd like to be sure whether or not I should be doing any work inside the FirebaseMessagingService asynchronously or synchronously.

谢谢

回答:

FirebaseMessagingService 的方法 onMessageReceived(RemoteMessage message) NOT 在主线程上调用 - 所以所有工作都应该同步进行.

FirebaseMessagingService's method onMessageReceived(RemoteMessage message) is NOT called on the main thread - so all work should be synchronously.

推荐答案

FirebaseMessagingService 的方法 onMessageReceived(RemoteMessage message) 被在后台"调用(不在UI/主线程).如果您尝试在 onMessageReceived(RemoteMessage message) 中进行异步工作,您将收到一条错误消息:

FirebaseMessagingService's method onMessageReceived(RemoteMessage message) is called "in the background" (not on the UI/Main thread). If you try do asynchronous work inside onMessageReceived(RemoteMessage message) you will receive an error saying:

方法execute必须从主线程调用,当前推断线程为worker.

所以在 onMessageReceived(RemoteMessage message) 内完成的所有工作都应该同步完成,因为它在自己的后台工作线程中.

So all work that is done within onMessageReceived(RemoteMessage message) should be done synchronously because it's in its own background worker thread.

这篇关于FirebaseMessagingService 默认在后台运行吗?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!

05-19 00:24