From 947665fcc424a142b37dc180164acaf1a4404089 Mon Sep 17 00:00:00 2001 From: Jason O'Brien Date: Wed, 29 Aug 2018 15:44:25 -0500 Subject: [PATCH] Clarify which thread service runs on FirebaseMessagingService's onMessageReceived method isn't called on the main thread, but on a background service thread. This does imply some timing constraints, but not on the same order. See docs at: https://firebase.google.com/docs/cloud-messaging/android/receive --- .../fcm/SquawkFirebaseMessageService.java | 25 ++++++------------- 1 file changed, 7 insertions(+), 18 deletions(-) diff --git a/app/src/main/java/android/example/com/squawker/fcm/SquawkFirebaseMessageService.java b/app/src/main/java/android/example/com/squawker/fcm/SquawkFirebaseMessageService.java index 9c868dbe..221e7a3d 100644 --- a/app/src/main/java/android/example/com/squawker/fcm/SquawkFirebaseMessageService.java +++ b/app/src/main/java/android/example/com/squawker/fcm/SquawkFirebaseMessageService.java @@ -96,23 +96,12 @@ public void onMessageReceived(RemoteMessage remoteMessage) { * @param data Map which has the message data in it */ private void insertSquawk(final Map data) { - - // Database operations should not be done on the main thread - AsyncTask insertSquawkTask = new AsyncTask() { - - @Override - protected Void doInBackground(Void... voids) { - ContentValues newMessage = new ContentValues(); - newMessage.put(SquawkContract.COLUMN_AUTHOR, data.get(JSON_KEY_AUTHOR)); - newMessage.put(SquawkContract.COLUMN_MESSAGE, data.get(JSON_KEY_MESSAGE).trim()); - newMessage.put(SquawkContract.COLUMN_DATE, data.get(JSON_KEY_DATE)); - newMessage.put(SquawkContract.COLUMN_AUTHOR_KEY, data.get(JSON_KEY_AUTHOR_KEY)); - getContentResolver().insert(SquawkProvider.SquawkMessages.CONTENT_URI, newMessage); - return null; - } - }; - - insertSquawkTask.execute(); + ContentValues newMessage = new ContentValues(); + newMessage.put(SquawkContract.COLUMN_AUTHOR, data.get(JSON_KEY_AUTHOR)); + newMessage.put(SquawkContract.COLUMN_MESSAGE, data.get(JSON_KEY_MESSAGE).trim()); + newMessage.put(SquawkContract.COLUMN_DATE, data.get(JSON_KEY_DATE)); + newMessage.put(SquawkContract.COLUMN_AUTHOR_KEY, data.get(JSON_KEY_AUTHOR_KEY)); + getContentResolver().insert(SquawkProvider.SquawkMessages.CONTENT_URI, newMessage); } @@ -151,4 +140,4 @@ private void sendNotification(Map data) { notificationManager.notify(0 /* ID of notification */, notificationBuilder.build()); } -} \ No newline at end of file +}