簡體   English   中英

如果長時間未打開應用程序,則不會收到GCM推送通知

[英]GCM push notification is not received if app was not opened in a long time

我有一些使用gcm notification應用程序。 它們工作正常,但這里有一個問題:如果我不打開其中一個很長一段時間(比如2個月或更多),它將不再收到通知。

實際上,我也遇到了stackoverflow應用程序的這種行為。 任何人都可以解釋是什么原因以及如何避免它?

通常gcm通知的使用壽命為4周后谷歌停止播放它。 但在您的情況下,應用程序通常具有喚醒定時器,以允許它們定期喚醒並嘗試接收通知,即使沒有打開。 如果您在一些應用程序上丟失通知,請檢查您是否有節電應用程序,例如Greenify或其他有效阻止通知喚醒應用程序的應用程序。 如果沒有,則可能是您的ROM具有電池節省功能,可阻止此喚醒等某些情況也可能觸發應用程序中的喚醒,例如WiFi連接或數據已打開。

這里建議放置一個在后台連續運行的服務。 請注意, IntentService在用完工作時會自行停止。

另外,根據這個帖子

如果用戶強制停止您的應用程序設置,您的代碼將再次運行 ,直到手動運行您的某個組件,通常是用戶手動啟動活動(從Android 3.1開始)。 因此,如果用戶強制停止您的應用程序設置,您將不會在較新的設備/模擬器上收到GCM消息。

正如@Bmbariah所說,Android設備上的Android應用程序不需要運行來接收消息。 只要應用程序設置了正確的廣播接收器和權限,系統就會在消息到達時通過Intent廣播喚醒Android應用程序。 您可以檢查此WakefulBroadcastReceiver服務,該服務允許您管理后台任務的生命周期。

文檔只說“醒來”,這對我來說意味着應用程序“正在睡覺”或在后台。 但是當你強制關閉一個應用程序時,它沒有“喚醒”的運行進程,它需要啟動。

希望這可以幫助!

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM