![](/img/trans.png)
[英]Push Notification Service is not running when the app is not in the background
[英]Start a service when app is terminated via push notification
我正在嘗試通過粘性通知實現后台位置跟蹤,如果應用程序在前台或在手機的任務管理器中打開,我可以輕松地通過通知啟動服務,但是我想通過一個觸發服務啟動例如推送通知,每當我這樣做時,我似乎根本無法啟動服務,並且onMessageReceived
只會觸發super.onMessageReceived
,有沒有辦法解決這個問題?
這是我在方法中的代碼
override fun onMessageReceived(p0: RemoteMessage) {
Intent(this, MyService::class.java).also { intent ->
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) startForegroundService(intent) else startService(intent)
}
}
通過觸發超級,我的意思是它只顯示帶有我在 firebase 雲消息傳遞選項卡上寫的標題/描述的默認通知
您需要編寫發送 FCM 通知 api,其中您將需要“數據”鍵而不是“通知”。
{
"data": {"description": "TEST",
"jobCode": "TEST",
"notification_id": "2",
"body": {"id":"25719","title":"Tele Consulant ","description":"Appointment","text":"Appointment","is_read":0,"opponentsID":"22297","contactIdentifier":"Test Doctor","roomName":"1","eventName":"accept"},
"type": "3",
"Image" : "",
"title" :" Tele Consulant "},
"to":"c5fHUz8iRh63gXxAR9NYXG:APA91bE78n7Nc4sNxgeETiYo5XYsw0Trhqj1V_vZEaQsoCZg-0n-IhEJ2tJTPAlv0R2Xka3HEwdOw6_kSNqCUHBZmhluDNsAtM8u_GHFjMoaucuCGtjSURq2GIfP5Kgv03j7lCdN8ZjK"
}
消息類型:
通知消息和數據消息。
通知消息包含一組預定義的用戶可見鍵。 通知消息具有可選的通知有效負載,並將傳送到用戶系統托盤。
如果應用程序在前台,如果通知有數據負載,他們將調用 onMessageReceived。
如果應用程序是后台,將顯示通知並通過啟動活動的意圖給出數據有效負載。
如果通知沒有可選的數據負載,則將顯示通知並在單擊時打開應用程序。
數據消息僅包含您的用戶定義的自定義鍵值對。 (解釋如下)。 如果您希望消息始終調用 onMessageReceived,則它們不應包含通知負載,而是數據負載。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.