いつもお世話になっております。
早速ですが、Push通知で送られてきた通知をSQlite(Room)で保存する仕組みを作っているのですが、バックグラウンド時にPush通知が来たら発火するイベント等はありますでしょうか?
フォアグランドの状態で通知が来ると「onMessageReceived」が発火するので、その中にインサート処理を書いて対応できていますが、バックグランド状態で発火するイベントが見つけれず困っております、、
公式サイトでは「システムトレイ」と一文だけ書いており、詳しく書いておりません。
バックグランド状態で発火するイベントはそもそも存在しますでしょうか。
↓公式サイト↓
https://firebase.google.com/docs/cloud-messaging/android/receive?hl=ja
(それと良ければ前回投稿した質問に回答が得られていないのでご教授頂ければ幸いです、、)
前回の質問:https://teratail.com/questions/256826
ご回答よろしくお願いいたします。
下記コードはonMessageReceivedが書いてあるファイルです。
※細かいところは省略しています。
MyFirebaseMessagingService.java
Java
1public class MyFirebaseMessagingService extends FirebaseMessagingService { 2 3 private static final String TAG = "MyFirebaseMsgService"; 4 5 @Override 6 public void onNewToken(String token) { 7 …省略 8 } 9 10 @Override 11 public void onMessageReceived(RemoteMessage remoteMessage) { 12 13 Log.d(TAG,"プッシュ通知が来た"); 14 15 if (remoteMessage != null) { 16 // 通知メッセージ 17 RemoteMessage.Notification notification = remoteMessage.getNotification(); 18 19 if (notification != null) { 20 // 通知メッセージを処理 21 Log.d(TAG,notification.getTitle()); 22 Log.d(TAG,notification.getBody()); 23 Log.d(TAG,notification.getClickAction()); 24 25 String imageUrl; 26 27 if(notification.getImageUrl() != null){ 28 Log.d(TAG,notification.getImageUrl().toString()); 29 imageUrl = notification.getImageUrl().toString(); 30 }else{ 31 Log.d(TAG,"なにも入っていません"); 32 imageUrl = ""; 33 } 34 35 //プッシュ通知をデータベースに入れ込み 36 PushList pushList = new PushList(); 37 PushListInsertAsync pushListInsertAsync = new PushListInsertAsync(notification.getTitle(),notification.getBody(),dateTime,notification.getClickAction(),1,0,imageUrl,getApplicationContext(),pushList); 38 pushListInsertAsync.execute(); 39 40 } 41 42 //フォアグランド用にタイトル・本文・チャンネルを作成 43 String title = notification.getTitle(); 44 String body = notification.getBody(); 45 String channel = notification.getChannelId(); 46 47 //Push通知表示用メソッド呼び出し 48 sendNotification(title,body,channel); 49 50 } 51 }
回答1件
あなたの回答
tips
プレビュー