我正在嘗試在我的應用中實施GCM。該應用程序由一個用戶界面和一個在後臺運行的服務組成。該服務由啓動廣播接收器啓動,或者啓動App時啓動。在哪裏,何時和多久註冊一次Google Cloud Messaging
我跟着從谷歌提供的代碼示例,到目前爲止它的工作原理。 Google表示,您應該在您的活動中檢查onCreate()和onResume()中的播放服務。
我是否還應該檢查我服務中的播放服務(如果應用程序已啓動,請檢查播放服務是否失敗,用戶是否重新啓動設備,我的服務是否通過廣播啓動)?
此外,我真的需要添加onCreate()中的檢查,因爲onResume()在應用程序啓動時被調用嗎?
---更新---
好吧,我可能讓自己不夠清楚。我只消費GCM。接收者當然是一個廣播接收器,在我的清單中公開。
如果有消息進入,我會告訴我的服務要做些什麼。我問我是否應該在我的服務中檢查Play服務,以便我可以確保用戶知道如果未啓用Play服務,某些事情可能不起作用。
我想我誤解了文檔的這段文字。現在我對此有更多的瞭解,這意味着如果我的應用在沒有Play服務的情況下無法運行,我應該檢查onCreate()並在失敗時完成活動。如果像我的情況一樣,有Play服務很好,但我不依賴它們,我只通過檢查onResume()就可以嗎? – xxtesaxx
如果您確定您的應用不完全依賴播放服務,我認爲它沒有問題。 **但是**,我不完全確定是否違反最佳做法。乾杯! –
我選擇這個答案是最好的,因爲它對我的幫助最大。經過對我的問題的更多思考後,我得出了這樣的結論:我將在BootBroadcastReceiver中的onResume()AND中檢查Play Service。我這樣做(而不是在onCreate())的原因是,能夠接收一個特定的GCM消息類型不會使我的應用程序無用。它仍然可以使用,它從不發送GCM。因此,我使用這些支票作爲友好的提醒,即用戶應該啓動Play服務。如果有人擔心他們的隱私,我甚至可能會包含一個設置來完全停用GCM – xxtesaxx