当前位置: 首页 > 知识库问答 >
问题:

活动被终止时未调用MyFirebaseMessagingService

荆乐
2023-03-14

当应用程序处于活动状态时,所有操作都正常运行,但当没有任何活动运行时,我仍然通过firebase notification获得一个带有app_name和Body的通知,并打开MainActivity。
这是我的MyFirebaseMessagingService类:-
我看到了一个类似的问题,但对我的情况没有帮助。

public class MyFirebaseMessagingService extends FirebaseMessagingService {

    @Override
public void onMessageReceived(RemoteMessage remoteMessage) {

    if(remoteMessage.getNotification()!=null){
        if(DictionarySscWords.send_notifications) { //tried removing this condition but same result.
            sendnoti(remoteMessage.getNotification().getBody());
        }
    }
}

private void sendnoti(String body) {
   Intent i1=new Intent(this,MainActivity.class);
    i1.putExtra("word", body);
    i1.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
    PendingIntent pi=PendingIntent.getActivity(this,0,i1,PendingIntent.FLAG_CANCEL_CURRENT);
    Uri ns=RingtoneManager.getDefaultUri(RingtoneManager.TYPE_NOTIFICATION);
    NotificationCompat.Builder nb=new NotificationCompat.Builder(this).setSmallIcon(R.drawable.heart)
            .setContentTitle("Word Of the Day")
            .setContentText(body).setSmallIcon(R.drawable.heart)
            .setAutoCancel(true)
            .setSound(ns)
            .setContentIntent(pi);
    NotificationManager notificationManager = (NotificationManager)getSystemService(Context.NOTIFICATION_SERVICE);
    notificationManager.notify(0,nb.build());
}

}

共有1个答案

宿景曜
2023-03-14

正如它在Firebase文档中所说:

当应用程序处于后台时,通知消息会传递到通知托盘。对于前台应用程序,消息由以下回调处理:

DidReceiverEmoteNotification:在iOS上,Android上的OnMessageReceived()。数据包中的通知键包含通知。

{
    "to" : "bk3RNwTe3H0:CI2k_HHwgIpoDKCIZvvDMExUdFQ3P1...",
    "notification" : {
      "body" : "great match!",
      "title" : "Portugal vs. Denmark",
      "icon" : "myicon"
    }
  }
{
   "to" : "bk3RNwTe3H0:CI2k_HHwgIpoDKCIZvvDMExUdFQ3P1...",
   "data" : {
     "Nick" : "Mario",
     "body" : "great match!",
     "Room" : "PortugalVSDenmark"
   },
 }
 类似资料:
  • 我想创建一个即使应用程序被杀死也在运行的服务,所以我创建了一个未绑定的服务,这样它就不会绑定到活动生命周期。但是每次我通过长按和滑动杀死应用程序时,服务也会被杀死。请帮帮我。谢谢 服务 我从这样的活动中称之为 startService(new Intent(my service . class . getname())); 服务运行正常,直到应用程序在后台或前台,但当我长按并扫描应用程序时,服务也

  • 编辑:这是我的舱单

  • onMessageReceived(RemoteMessage RemoteMessage)在应用程序处于后台时未调用或仅显示{“body”:“test”,“title”:“test notification}之类的json字符串

  • 问题内容: 你们有以下问题的解决方法吗? 在注册活动的onDestroy中(当用户按下后退按钮时),我调用一个新活动,以便用户可以输入当天的某些最终生产数据,然后通过电子邮件发送该报告。问题在于,在刚刚开始的活动中,对getIntent的调用返回null,而我必须从那里获取数据。 ================================================== ========

  • 问题内容: 这是我的媒体播放器代码。当我在模式下以断点运行时,我不知道这段代码中缺少什么。文件夹中的所有文件都会播放。但是,当我以正常模式运行该应用程序时,会播放第一个文件,然后出现此错误: 码: 问题答案: 您没有调用的方法,即超类。将调用添加到的方法中:

  • 我正在尝试通过rxkotlin上传图像,我的问题是当我在应用程序中关闭屏幕时,上载过程会终止,因为我正在将订阅添加到我的处置中,所以当我的屏幕关闭或销毁时,我将进行处置。因为这个dispose,我的工作被终止了,因为无论如何我都需要处理其他的东西,这会导致内存泄漏 因此,我这样做,有没有其他方法来继续这项工作,即使在屏幕被破坏或清除后没有内存泄漏?