因为您只想显示来自 firebase 服务的通知。查看您的清单文件:
<service android:name=".YourFirebaseMessagingService" android:enabled="true" android:exported="true">
<intent-filter>
<action android:name="com.google.firebase.MESSAGING_EVENT"/>
</intent-filter>
</service>
该服务有一个带有com.google.firebase.MESSAGING_EVENT 操作的意图过滤器,然后您只需通过扩展FirebaseMessagingService 并覆盖onMessageReceived 方法来实现该服务。
请注意,大多数消息类型都提供了onMessageReceived,但以下情况除外:
通知消息在您的应用处于后台时发送。在这种情况下,通知将传送到设备的系统托盘。默认情况下,用户点击通知会打开应用启动器。
带有通知和数据负载的消息,包括后台和前台。在这种情况下,通知会传递到设备的系统托盘,而数据负载会在启动器 Activity 的 Intent 的附加部分中传递。
除非另有明确说明,否则服务在主线程上运行。这意味着您可以显示任何您喜欢的通知,或开始新的活动。
这是上面的一个例子:
public class YourFirebaseMessagingService extends FirebaseMessagingService {
@Override
public void onMessageReceived(RemoteMessage remoteMessage) {
if (remoteMessage.getNotification().getBody() != null) {
Log.e("FIREBASE", "Message Notification Body: " + remoteMessage.getNotification().getBody());
//DO WHATEVER YOU NEED HERE TO DISPLAY YOUR MESSAGE OR ACTIVITY
}
}
}
请注意,如果您希望唤醒后台应用程序,您需要向以下 URL 执行 POST:
POST https://fcm.googleapis.com/fcm/send
以及以下标题:
Key: Content-Type,Value: application/json
Key:授权,Value: key=<your-server-key>
如需了解更多信息,请查看link 和answer。