Does Firebasemessagingservice Run In The Background By Default?
Solution 1:
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:
Method execute must be called from the main thread, currently inferred thread is worker.
So all work that is done within onMessageReceived(RemoteMessage message)
should be done synchronously because it's in its own background worker thread.
Solution 2:
A Service
does not "run in the background". A Service
is just an instance of a class (ie: an object). The methods of a Service
can run on either the main (UI) thread or on a background (worker) thread. It all depends on how they are called.
The lifecycle methods of the service onCreate()
, onStartCommand()
, onDestroy()
are all called on the main (UI) thread. But in your Service
you can start other threads and do other things on those threads.
Post a Comment for "Does Firebasemessagingservice Run In The Background By Default?"