Base class for receiving messages from Firebase Cloud Messaging.
Extending this class is required to be able to handle downstream messages. It also provides functionality to automatically display notifications, and has methods that are invoked to give the status of upstream messages.
Override base class methods to handle any events required by the application. All methods are invoked on a background thread, and may be called when the app is in the background or not open.
Include the following in the manifest:
<service android:name=".YourFirebaseMessagingService" android:exported="false"> <intent-filter> <action android:name="com.google.firebase.MESSAGING_EVENT" /> </intent-filter> </service>
To support receiving messages in direct boot mode, add
android:directBootAware="true"
to the service
declaration. See
Receive FCM messages in direct boot mode for more information.
Inherited Constant Summary
int | START_CONTINUATION_MASK | |
int | START_FLAG_REDELIVERY | |
int | START_FLAG_RETRY | |
int | START_NOT_STICKY | |
int | START_REDELIVER_INTENT | |
int | START_STICKY | |
int | START_STICKY_COMPATIBILITY | |
int | STOP_FOREGROUND_DETACH | |
int | STOP_FOREGROUND_REMOVE |
String | ACCESSIBILITY_SERVICE | |
String | ACCOUNT_SERVICE | |
String | ACTIVITY_SERVICE | |
String | ALARM_SERVICE | |
String | APPWIDGET_SERVICE | |
String | APP_INTEGRITY_SERVICE | |
String | APP_OPS_SERVICE | |
String | APP_PREDICTION_SERVICE | |
String | AUDIO_SERVICE | |
String | BACKUP_SERVICE | |
String | BATTERY_SERVICE | |
String | BATTERY_STATS_SERVICE | |
int | BIND_ABOVE_CLIENT | |
int | BIND_ADJUST_WITH_ACTIVITY | |
int | BIND_ALLOW_OOM_MANAGEMENT | |
int | BIND_AUTO_CREATE | |
int | BIND_DEBUG_UNBIND | |
int | BIND_EXTERNAL_SERVICE | |
int | BIND_IMPORTANT | |
int | BIND_INCLUDE_CAPABILITIES | |
int | BIND_NOT_FOREGROUND | |
int | BIND_NOT_PERCEPTIBLE | |
int | BIND_WAIVE_PRIORITY | |
String | BIOMETRIC_SERVICE | |
String | BLOB_STORE_SERVICE | |
String | BLUETOOTH_SERVICE | |
String | BUGREPORT_SERVICE | |
String | CAMERA_SERVICE | |
String | CAPTIONING_SERVICE | |
String | CARRIER_CONFIG_SERVICE | |
String | CLIPBOARD_SERVICE | |
String | COMPANION_DEVICE_SERVICE | |
String | CONNECTIVITY_DIAGNOSTICS_SERVICE | |
String | CONNECTIVITY_SERVICE | |
String | CONSUMER_IR_SERVICE | |
String | CONTENT_SUGGESTIONS_SERVICE | |
String | CONTEXTHUB_SERVICE | |
int | CONTEXT_IGNORE_SECURITY | |
int | CONTEXT_INCLUDE_CODE | |
int | CONTEXT_RESTRICTED | |
String | CROSS_PROFILE_APPS_SERVICE | |
String | DEVICE_POLICY_SERVICE | |
String | DISPLAY_SERVICE | |
String | DOWNLOAD_SERVICE | |
String | DROPBOX_SERVICE | |
String | ETHERNET_SERVICE | |
String | EUICC_CARD_SERVICE | |
String | EUICC_SERVICE | |
String | FILE_INTEGRITY_SERVICE | |
String | FINGERPRINT_SERVICE | |
String | HARDWARE_PROPERTIES_SERVICE | |
String | HDMI_CONTROL_SERVICE | |
String | INPUT_METHOD_SERVICE | |
String | INPUT_SERVICE | |
String | IPSEC_SERVICE | |
String | JOB_SCHEDULER_SERVICE | |
String | KEYGUARD_SERVICE | |
String | LAUNCHER_APPS_SERVICE | |
String | LAYOUT_INFLATER_SERVICE | |
String | LOCATION_SERVICE | |
String | MEDIA_PROJECTION_SERVICE | |
String | MEDIA_ROUTER_SERVICE | |
String | MEDIA_SESSION_SERVICE | |
String | MEDIA_TRANSCODING_SERVICE | |
String | MIDI_SERVICE | |
int | MODE_APPEND | |
int | MODE_ENABLE_WRITE_AHEAD_LOGGING | |
int | MODE_MULTI_PROCESS | |
int | MODE_NO_LOCALIZED_COLLATORS | |
int | MODE_PRIVATE | |
int | MODE_WORLD_READABLE | |
int | MODE_WORLD_WRITEABLE | |
String | NETD_SERVICE | |
String | NETWORK_SCORE_SERVICE | |
String | NETWORK_STATS_SERVICE | |
String | NFC_SERVICE | |
String | NOTIFICATION_SERVICE | |
String | NSD_SERVICE | |
String | OEM_LOCK_SERVICE | |
String | PERMISSION_SERVICE | |
String | PERSISTENT_DATA_BLOCK_SERVICE | |
String | POWER_SERVICE | |
String | PRINT_SERVICE | |
int | RECEIVER_VISIBLE_TO_INSTANT_APPS | |
String | RESTRICTIONS_SERVICE | |
String | ROLE_SERVICE | |
String | ROLLBACK_SERVICE | |
String | SEARCH_SERVICE | |
String | SECURE_ELEMENT_SERVICE | |
String | SENSOR_SERVICE | |
String | SHORTCUT_SERVICE | |
String | STATS_MANAGER | |
String | STATUS_BAR_SERVICE | |
String | STORAGE_SERVICE | |
String | STORAGE_STATS_SERVICE | |
String | SYSTEM_CONFIG_SERVICE | |
String | SYSTEM_HEALTH_SERVICE | |
String | SYSTEM_UPDATE_SERVICE | |
String | TELECOM_SERVICE | |
String | TELEPHONY_IMS_SERVICE | |
String | TELEPHONY_SERVICE | |
String | TELEPHONY_SUBSCRIPTION_SERVICE | |
String | TETHERING_SERVICE | |
String | TEXT_CLASSIFICATION_SERVICE | |
String | TEXT_SERVICES_MANAGER_SERVICE | |
String | TV_INPUT_SERVICE | |
String | UI_MODE_SERVICE | |
String | USAGE_STATS_SERVICE | |
String | USB_SERVICE | |
String | USER_SERVICE | |
String | VIBRATOR_SERVICE | |
String | VPN_MANAGEMENT_SERVICE | |
String | VR_SERVICE | |
String | WALLPAPER_SERVICE | |
String | WIFI_AWARE_SERVICE | |
String | WIFI_NL80211_SERVICE | |
String | WIFI_P2P_SERVICE | |
String | WIFI_RTT_RANGING_SERVICE | |
String | WIFI_RTT_SERVICE | |
String | WIFI_SCANNING_SERVICE | |
String | WIFI_SERVICE | |
String | WINDOW_SERVICE |
int | TRIM_MEMORY_BACKGROUND | |
int | TRIM_MEMORY_COMPLETE | |
int | TRIM_MEMORY_MODERATE | |
int | TRIM_MEMORY_RUNNING_CRITICAL | |
int | TRIM_MEMORY_RUNNING_LOW | |
int | TRIM_MEMORY_RUNNING_MODERATE | |
int | TRIM_MEMORY_UI_HIDDEN |
Public Constructor Summary
Public Method Summary
void |
onDeletedMessages()
Called when the Firebase Cloud Messaging server deletes pending messages.
|
void | |
void | |
void |
onMessageSent(String msgId)
Called when an upstream message has been successfully sent to the GCM
connection server.
|
void | |
void |
onSendError(String msgId,
Exception
exception)
Called when there was an error sending an upstream message.
|
Inherited Method Summary
void |
attachBaseContext(Context
arg0)
|
void | |
final Application |
getApplication()
|
final int |
getForegroundServiceType()
|
abstract IBinder |
onBind(Intent
arg0)
|
void |
onConfigurationChanged(Configuration
arg0)
|
void |
onCreate()
|
void |
onDestroy()
|
void |
onLowMemory()
|
void |
onRebind(Intent
arg0)
|
void |
onStart(Intent
arg0, int arg1)
|
int |
onStartCommand(Intent
arg0, int arg1, int arg2)
|
void |
onTaskRemoved(Intent
arg0)
|
void |
onTrimMemory(int arg0)
|
boolean |
onUnbind(Intent
arg0)
|
final void |
startForeground(int arg0, Notification
arg1)
|
final void |
startForeground(int arg0, Notification
arg1, int arg2)
|
final void |
stopForeground(int arg0)
|
final void |
stopForeground(boolean arg0)
|
final void |
stopSelf()
|
final void |
stopSelf(int arg0)
|
final boolean |
stopSelfResult(int arg0)
|
void |
attachBaseContext(Context
arg0)
|
boolean | |
boolean | |
boolean | |
boolean | |
int |
checkCallingOrSelfPermission(String arg0)
|
int |
checkCallingOrSelfUriPermission(Uri arg0, int
arg1)
|
int |
checkCallingPermission(String arg0)
|
int |
checkCallingUriPermission(Uri arg0, int
arg1)
|
int |
checkPermission(String arg0,
int arg1, int arg2)
|
int |
checkSelfPermission(String arg0)
|
int | |
int |
checkUriPermission(Uri arg0, int
arg1, int arg2, int arg3)
|
void |
clearWallpaper()
|
Context |
createAttributionContext(String arg0)
|
Context |
createConfigurationContext(Configuration
arg0)
|
Context |
createContextAsUser(UserHandle
arg0, int arg1)
|
Context |
createContextForSplit(String arg0)
|
Context |
createCredentialProtectedStorageContext()
|
Context |
createDeviceProtectedStorageContext()
|
Context |
createDisplayContext(Display
arg0)
|
Context |
createPackageContext(String arg0,
int arg1)
|
Context | |
Context |
createWindowContext(int arg0, Bundle arg1)
|
String[] |
databaseList()
|
boolean |
deleteDatabase(String arg0)
|
boolean |
deleteFile(String arg0)
|
boolean |
deleteSharedPreferences(String arg0)
|
void | |
void | |
void | |
void | |
void | |
void | |
void | |
String[] |
fileList()
|
Context |
getApplicationContext()
|
ApplicationInfo |
getApplicationInfo()
|
AssetManager |
getAssets()
|
String |
getAttributionTag()
|
Context |
getBaseContext()
|
File |
getCacheDir()
|
ClassLoader |
getClassLoader()
|
File |
getCodeCacheDir()
|
ContentResolver |
getContentResolver()
|
File |
getDataDir()
|
File |
getDatabasePath(String arg0)
|
File |
getDir(String arg0,
int arg1)
|
Display |
getDisplay()
|
File |
getExternalCacheDir()
|
File[] |
getExternalCacheDirs()
|
File |
getExternalFilesDir(String arg0)
|
File[] |
getExternalFilesDirs(String arg0)
|
File[] |
getExternalMediaDirs()
|
File |
getFileStreamPath(String arg0)
|
File |
getFilesDir()
|
Executor |
getMainExecutor()
|
Looper |
getMainLooper()
|
File |
getNoBackupFilesDir()
|
File |
getObbDir()
|
File[] |
getObbDirs()
|
String |
getOpPackageName()
|
String |
getPackageCodePath()
|
PackageManager |
getPackageManager()
|
String |
getPackageName()
|
String |
getPackageResourcePath()
|
File |
getPreloadsFileCache()
|
Resources |
getResources()
|
SharedPreferences |
getSharedPreferences(String arg0,
int arg1)
|
Object |
getSystemService(String arg0)
|
String |
getSystemServiceName(Class<?>
arg0)
|
Resources.Theme |
getTheme()
|
Drawable |
getWallpaper()
|
int |
getWallpaperDesiredMinimumHeight()
|
int |
getWallpaperDesiredMinimumWidth()
|
void | |
boolean |
isCredentialProtectedStorage()
|
boolean |
isDeviceProtectedStorage()
|
boolean |
isRestricted()
|
boolean | |
boolean | |
FileInputStream |
openFileInput(String arg0)
|
FileOutputStream |
openFileOutput(String arg0,
int arg1)
|
SQLiteDatabase |
openOrCreateDatabase(String arg0,
int arg1,
SQLiteDatabase.CursorFactory arg2,
DatabaseErrorHandler arg3)
|
SQLiteDatabase | |
Drawable |
peekWallpaper()
|
Intent | |
Intent | |
Intent | |
Intent | |
Intent | |
void |
removeStickyBroadcast(Intent
arg0)
|
void | |
void |
revokeUriPermission(Uri arg0, int
arg1)
|
void | |
void | |
void | |
void |
sendBroadcast(Intent
arg0)
|
void | |
void | |
void | |
void | |
void | |
void | |
void | |
void | |
void |
sendOrderedBroadcastAsUser(Intent
arg0, UserHandle
arg1, String arg2,
BroadcastReceiver
arg3, Handler
arg4, int arg5, String arg6,
Bundle arg7)
|
void |
sendStickyBroadcast(Intent
arg0)
|
void | |
void |
sendStickyOrderedBroadcast(Intent
arg0, BroadcastReceiver
arg1, Handler
arg2, int arg3, String arg4,
Bundle arg5)
|
void |
sendStickyOrderedBroadcastAsUser(Intent
arg0, UserHandle
arg1, BroadcastReceiver
arg2, Handler
arg3, int arg4, String arg5,
Bundle arg6)
|
void |
setTheme(int arg0)
|
void |
setWallpaper(Bitmap
arg0)
|
void |
setWallpaper(InputStream
arg0)
|
void | |
void |
startActivities(Intent[]
arg0)
|
void |
startActivity(Intent
arg0)
|
void | |
void | |
ComponentName |
startForegroundService(Intent
arg0)
|
boolean | |
void | |
void | |
ComponentName |
startService(Intent
arg0)
|
boolean |
stopService(Intent
arg0)
|
void |
unbindService(ServiceConnection
arg0)
|
void |
unregisterReceiver(BroadcastReceiver
arg0)
|
void |
updateServiceGroup(ServiceConnection
arg0, int arg1, int arg2)
|
boolean | |
boolean | |
abstract boolean | |
boolean | |
abstract int |
checkCallingOrSelfPermission(String arg0)
|
abstract int |
checkCallingOrSelfUriPermission(Uri arg0, int
arg1)
|
abstract int |
checkCallingPermission(String arg0)
|
abstract int |
checkCallingUriPermission(Uri arg0, int
arg1)
|
abstract int |
checkPermission(String arg0,
int arg1, int arg2)
|
abstract int |
checkSelfPermission(String arg0)
|
abstract int | |
abstract int |
checkUriPermission(Uri arg0, int
arg1, int arg2, int arg3)
|
abstract void |
clearWallpaper()
|
Context |
createAttributionContext(String arg0)
|
abstract Context |
createConfigurationContext(Configuration
arg0)
|
Context |
createContextAsUser(UserHandle
arg0, int arg1)
|
abstract Context |
createContextForSplit(String arg0)
|
abstract Context |
createCredentialProtectedStorageContext()
|
abstract Context |
createDeviceProtectedStorageContext()
|
abstract Context |
createDisplayContext(Display
arg0)
|
abstract Context |
createPackageContext(String arg0,
int arg1)
|
Context | |
Context |
createWindowContext(int arg0, Bundle arg1)
|
abstract String[] |
databaseList()
|
abstract boolean |
deleteDatabase(String arg0)
|
abstract boolean |
deleteFile(String arg0)
|
abstract boolean |
deleteSharedPreferences(String arg0)
|
abstract void | |
abstract void | |
abstract void | |
abstract void | |
abstract void | |
abstract void | |
abstract void | |
abstract String[] |
fileList()
|
abstract Context |
getApplicationContext()
|
abstract ApplicationInfo |
getApplicationInfo()
|
abstract AssetManager |
getAssets()
|
String |
getAttributionTag()
|
abstract File |
getCacheDir()
|
abstract ClassLoader |
getClassLoader()
|
abstract File |
getCodeCacheDir()
|
final int |
getColor(int arg0)
|
final ColorStateList |
getColorStateList(int arg0)
|
abstract ContentResolver |
getContentResolver()
|
abstract File |
getDataDir()
|
abstract File |
getDatabasePath(String arg0)
|
abstract File |
getDir(String arg0,
int arg1)
|
Display |
getDisplay()
|
final Drawable |
getDrawable(int arg0)
|
abstract File |
getExternalCacheDir()
|
abstract File[] |
getExternalCacheDirs()
|
abstract File |
getExternalFilesDir(String arg0)
|
abstract File[] |
getExternalFilesDirs(String arg0)
|
abstract File[] |
getExternalMediaDirs()
|
abstract File |
getFileStreamPath(String arg0)
|
abstract File |
getFilesDir()
|
Executor |
getMainExecutor()
|
abstract Looper |
getMainLooper()
|
abstract File |
getNoBackupFilesDir()
|
abstract File |
getObbDir()
|
abstract File[] |
getObbDirs()
|
String |
getOpPackageName()
|
abstract String |
getPackageCodePath()
|
abstract PackageManager |
getPackageManager()
|
abstract String |
getPackageName()
|
abstract String |
getPackageResourcePath()
|
abstract File |
getPreloadsFileCache()
|
abstract Resources |
getResources()
|
abstract SharedPreferences |
getSharedPreferences(String arg0,
int arg1)
|
final String |
getString(int arg0, Object...
arg1)
|
final String |
getString(int arg0)
|
final <T> T |
getSystemService(Class<T>
arg0)
|
abstract Object |
getSystemService(String arg0)
|
abstract String |
getSystemServiceName(Class<?>
arg0)
|
final CharSequence |
getText(int arg0)
|
abstract Resources.Theme |
getTheme()
|
abstract Drawable |
getWallpaper()
|
abstract int |
getWallpaperDesiredMinimumHeight()
|
abstract int |
getWallpaperDesiredMinimumWidth()
|
abstract void | |
abstract boolean |
isCredentialProtectedStorage()
|
abstract boolean |
isDeviceProtectedStorage()
|
boolean |
isRestricted()
|
abstract boolean | |
abstract boolean | |
final TypedArray |
obtainStyledAttributes(AttributeSet
arg0, int[] arg1)
|
final TypedArray |
obtainStyledAttributes(AttributeSet
arg0, int[] arg1, int arg2, int arg3)
|
final TypedArray |
obtainStyledAttributes(int arg0, int[] arg1)
|
final TypedArray |
obtainStyledAttributes(int[] arg0)
|
abstract FileInputStream |
openFileInput(String arg0)
|
abstract FileOutputStream |
openFileOutput(String arg0,
int arg1)
|
abstract SQLiteDatabase |
openOrCreateDatabase(String arg0,
int arg1,
SQLiteDatabase.CursorFactory arg2,
DatabaseErrorHandler arg3)
|
abstract SQLiteDatabase | |
abstract Drawable |
peekWallpaper()
|
void |
registerComponentCallbacks(ComponentCallbacks
arg0)
|
abstract Intent | |
abstract Intent | |
abstract Intent | |
abstract Intent | |
Intent | |
abstract void |
removeStickyBroadcast(Intent
arg0)
|
abstract void | |
abstract void |
revokeUriPermission(Uri arg0, int
arg1)
|
abstract void | |
abstract void | |
abstract void | |
abstract void |
sendBroadcast(Intent
arg0)
|
abstract void | |
abstract void | |
abstract void | |
void | |
void | |
abstract void | |
abstract void | |
abstract void | |
abstract void |
sendOrderedBroadcastAsUser(Intent
arg0, UserHandle
arg1, String arg2,
BroadcastReceiver
arg3, Handler
arg4, int arg5, String arg6,
Bundle arg7)
|
abstract void |
sendStickyBroadcast(Intent
arg0)
|
abstract void | |
abstract void |
sendStickyOrderedBroadcast(Intent
arg0, BroadcastReceiver
arg1, Handler
arg2, int arg3, String arg4,
Bundle arg5)
|
abstract void |
sendStickyOrderedBroadcastAsUser(Intent
arg0, UserHandle
arg1, BroadcastReceiver
arg2, Handler
arg3, int arg4, String arg5,
Bundle arg6)
|
abstract void |
setTheme(int arg0)
|
abstract void |
setWallpaper(Bitmap
arg0)
|
abstract void |
setWallpaper(InputStream
arg0)
|
abstract void | |
abstract void |
startActivities(Intent[]
arg0)
|
abstract void |
startActivity(Intent
arg0)
|
abstract void | |
void | |
abstract ComponentName |
startForegroundService(Intent
arg0)
|
abstract boolean | |
abstract void | |
abstract void | |
abstract ComponentName |
startService(Intent
arg0)
|
abstract boolean |
stopService(Intent
arg0)
|
abstract void |
unbindService(ServiceConnection
arg0)
|
void |
unregisterComponentCallbacks(ComponentCallbacks
arg0)
|
abstract void |
unregisterReceiver(BroadcastReceiver
arg0)
|
void |
updateServiceGroup(ServiceConnection
arg0, int arg1, int arg2)
|
abstract void |
onTrimMemory(int arg0)
|
abstract void |
onConfigurationChanged(Configuration
arg0)
|
abstract void |
onLowMemory()
|
Public Constructors
public FirebaseMessagingService ()
Public Methods
public void onDeletedMessages ()
Called when the Firebase Cloud Messaging server deletes pending messages. This may be due to:
- Too many messages stored on the Firebase Cloud Messaging server. This can occur when the app's servers send a bunch of non-collapsible messages to Firebase Cloud Messaging servers while the device is offline.
- The device hasn't connected in a long time and the app server has recently (within the last 4 weeks) sent a message to the app on that device.
It is recommended that the app do a full sync with the app server after receiving this call. See here for more information.
public void onDestroy ()
public void onMessageReceived (RemoteMessage message)
Called when a message is received.
This is also called when a notification message is received while the app is in the
foreground. The notification parameters can be retrieved with
RemoteMessage.getNotification()
.
Parameters
message | Remote message that has been received. |
---|
public void onMessageSent (String msgId)
Called when an upstream message has been successfully sent to the GCM connection server.
Parameters
msgId | of the upstream message sent using
FirebaseMessaging.send(RemoteMessage) . |
---|
public void onNewToken (String token)
Called when a new token for the default Firebase project is generated.
This is invoked after app install when a token is first generated, and again if the token changes.
Parameters
token | The token used for sending messages to this application instance. This token is
the same as the one retrieved by
FirebaseMessaging.getToken() . |
---|
public void onSendError (String msgId, Exception exception)
Called when there was an error sending an upstream message.
Parameters
msgId | of the upstream message sent using
FirebaseMessaging.send(RemoteMessage) . |
---|---|
exception | description of the error, typically a SendException . |