我使用FirebaseMessagingService来处理传入的通知。 当我的应用程序处于前台和后台时,消息正在到达。 当我刷出应用程序时,通知正在到达。 但如果我重新启动设备,只有在我运行应用程序之前,通知才会收到。 同样,Telegram和WhatsApp在重启后也会继续收到通知。 我已经实现了onNewToken()方法,并添加了向服务器发送新令牌的逻辑,但这并没有帮助。 如何在重新启动后继续接收通知?
它们有一个后台服务,在启动时启动服务。 您需要实现这样的服务。 会增加电池消耗。 这也许能帮到你。
实际上,如果您想在重启后启动服务,那么您必须添加intent-filter操作。 尝试在您的intent-filter中添加BOOT_COMPLETED操作。 在清单的行下面添加。 但是基本上对于Firebase通知,不需要添加这个动作。
<service
android:name=".common.service.NotificationService"
android:enabled="true"
android:exported="true"
android:permission="android.permission.BIND_JOB_SERVICE"
android:process=":notification_service">
<intent-filter>
<action android:name="com.abc.xyz.restart_service" />
<action android:name="android.intent.action.BOOT_COMPLETED" />
<action android:name="com.google.firebase.MESSAGING_EVENT" />
</intent-filter>
</service>