FirebaseMessagingService
是否像IntentService
一样在后台运行?
我看到FirebaseMessagingService
扩展了Service
,而Service
并不在后台运行,但我想确定我是否应该在FirebaseMessagingService
内部异步或同步地执行任何工作。
FirebaseMessagingService
是否像IntentService
一样在后台运行?
我看到FirebaseMessagingService
扩展了Service
,而Service
并不在后台运行,但我想确定我是否应该在FirebaseMessagingService
内部异步或同步地执行任何工作。
FirebaseMessagingService
的方法 onMessageReceived(RemoteMessage message)
是在"后台"(而不是在UI/Main线程)调用的。如果你尝试在 onMessageReceived(RemoteMessage message)
方法内部进行异步工作,你会收到以下错误提示:
Method execute must be called from the main thread, currently inferred thread is worker.
所以,应该在 onMessageReceived(RemoteMessage message)
中完成所有同步工作,因为它在自己的后台工作线程中运行。
Service
,这是非常正确的,但我认为当涉及到FirebaseMessagingService
时情况并非如此。请查看我的答案以获取更多详细信息。 - Sakiboy