默认情况下FirebaseMessagingService是否在后台运行?

nbnkbykc  于 2023-06-30  发布在  其他
关注(0)|答案(2)|浏览(153)

FirebaseMessagingService在后台运行的方式是否与IntentService类似?
我看到FirebaseMessagingService扩展了不在后台运行的Service,但我想确定我是否应该在FirebaseMessagingService中异步或同步地执行任何工作。

vawmfj5a

vawmfj5a1#

FirebaseMessagingService的方法onMessageReceived(RemoteMessage message)被称为“在后台”(而不是在UI/主线程上)。如果你尝试在onMessageReceived(RemoteMessage message)中进行异步工作,你会收到一个错误消息:
必须从主线程调用execute方法,当前推断线程是辅助线程。
因此,在onMessageReceived(RemoteMessage message)中完成的所有工作都应该同步完成,因为它在自己的后台工作线程中。

djp7away

djp7away2#

锁定5天。此时正在解决disputes about this answer’s content。它目前不接受新的交互。

Service不会“在后台运行”。一个Service只是一个类的示例(即:对象)。Service的方法可以在主(UI)线程或后台(worker)线程上运行。这一切都取决于他们如何被称为。
服务onCreate()onStartCommand()onDestroy()的生命周期方法都在主(UI)线程上调用。但在Service中,您可以启动其他线程并在这些线程上执行其他操作。

相关问题