2017-08-14 52 views
2

我正在開發一個android應用程序,用戶可以在其中登錄並可以查看收件箱中收到的消息(每條消息包含已存儲在我的數據庫中的時間,日期,主題和發件人信息)。有一個收件箱按鈕,顯示在收件箱中收到的消息數量作爲徽章通知,就像收件箱中存在10封郵件一樣,顯示爲徽章通知中的文本。我成功地做到了這一切,但我希望每當用戶在其收件箱中收到任何消息時;用戶將通過推送通知來通知應用程序已打開或處於後臺。我搜查了很多,但我不知道從哪裏開始。 各種幫助表示讚賞! 在此先感謝。如何在應用程序處於後臺時在android中獲取推送通知?

回答

1

你可以接近你的問題,至少在兩個方面。

第一種方法是執行AlarmManager這將開始要檢查的服務是新消息到達,如果它是你可以上報通知。但是這種方法的一些限制是,你必須設置AlaramManager來觸發一次服務,例如每15分鐘一次,並且如果在此期間消息到達用戶將不會實時通知用戶。實際上,您可以持續運行服務,但這將是不好的做法,因爲它會加速電池使用,如果需要可用空間,服務可能會被操作系統殺死。

第二種方法是使用一些第三方客戶端,如FCM,這是免費的,但每條消息的限制爲4kb(通知消息),這對於通知來說足夠實際。通常,消息(通知消息)是從Firebase console手動發送的,但是第二個限制是,如果要在用戶離線時發出通知,則必須包含data payload以觸發onMessageReceived並引發通知。如果您希望在應用程序處於後臺時執行此操作,則需要自定義服務器端邏輯,因爲從Firebase控制檯無法實現這一點。幸運的是,有教程如何做到這一點。本教程將幫助您設置FCMhttps://www.androidhive.info/2012/10/android-push-notifications-using-google-cloud-messaging-gcm-php-and-mysql/

在這裏,你可以找到自定義的PHP服務器來發送郵件: http://demo.androidhive.info/firebase/notifications/

相關問題