我试图在我的应用中实施GCM。该应用程序包含一个用户界面和一个在后台运行的服务。该服务由启动广播接收器启动或启动应用程序。
我按照谷歌提供的代码示例,到目前为止它的工作原理。 Google表示,您应该在活动中的onCreate()和onResume()中检查播放服务。
我是否还要检查我的服务中的播放服务(如果应用程序启动,请检查播放服务是否失败,用户是否重启设备,我的服务是否通过广播启动)?
另外,我真的需要在onCreate()中添加检查,因为在应用程序启动时,无论如何都会调用onResume()吗?
--- ---更新
好吧,我可能会让自己不够清楚。我只消耗GCM。接收器当然是一个广播接收器,在我的清单中公开。
如果收到消息,我会告诉我的服务做某事。我问我是否应该在我的服务中检查Play服务,这样我就可以确保用户知道如果没有激活Play服务,某些事情可能无效。
答案 0 :(得分:0)
我是否还要检查我的服务中的播放服务(如果应用程序启动,检查播放服务是否失败,用户是否重启设备,我的服务是否通过广播启动)?
我之前没有尝试使用过引导BroadcastReceiver
,所以我对它不熟悉,这就是为什么我不会评论总答案。
我真的需要在onCreate()中添加检查,因为在应用程序启动时仍会调用onResume()吗?
docs中还可以找到他们建议这样做的原因:
依赖Play Services SDK的应用应始终在访问Google Play服务功能之前检查设备是否支持兼容的Google Play服务。建议在两个位置执行此操作:主活动的
onCreate()
方法和onResume()
方法。签入onCreate()
可确保在未成功检查的情况下无法使用该应用。签入onResume()
可确保如果用户通过其他方式(例如通过后退按钮)返回正在运行的应用程序,则仍会执行检查。
IF 您认为在Service
内开始任何操作之前检查Play服务是必要的,那么我认为这是一个很好的举措。
希望这会有所帮助。干杯!
PS:顺便说一下,如果你还没有检查出来,GCM现在有一个名为firebase-cloud-messaging的新版本。看看吧。 :d
答案 1 :(得分:0)
对于FCM(以前称为GCM),您应该在即将使用Google Play服务API时检查Google Play服务。如果您的服务可以通过重新启动广播启动,并且您的服务使用FCM,那么您应该检查那里的播放服务。因此,如果您的活动正在启动该服务,则无需在活动中检查Google Play服务。如果Google Play服务丢失但设备不会收到消息,甚至无法获得注册令牌,FCM不应对您的应用产生负面影响。