在运行Google Play服务版本低于7.5.0的设备上使用GcmNetworkManager

3

我正在使用GcmNetworkManager来安排我的任务。

但是在google play服务版本低于7.5.0的设备上将无法运行。

问题是,如果GcmNetworkManager与低于7.5版本的google play服务不兼容,还是我做错了什么?

另外,是否有其他方法来安排任务(类似于GcmNetworkManager),可以在旧版本的google play服务中使用?

1个回答

2

GcmNetworkManager是在Google Play Services 7.5.0中添加的,因此它不适用于旧版本。(公告博客文章在这里:http://android-developers.blogspot.com/2015/05/a-closer-look-at-google-play-services-75.html

然而,Google Play服务会在后台通过Google Play自动更新,所以用户应该始终拥有最新版本。

如果由于某种原因您不想使用GcmNetworkManager,则唯一的其他选择是使用JobScheduler API。实际上,这就是GcmNetworkManager在较新设备上内部使用的内容。问题是,此API仅适用于运行Android 5.0+的设备。(使用GcmNetworkManager的主要好处是它包括向旧设备提供兼容性代码。)

或者,您可以在旧设备上使用AlarmManager,因为它自Android 1.0以来就存在。但是,如果您的任务与网络相关,则无法获得JobScheduler或GcmNetworkManager通常提供的节能效益。


谢谢Trevor,难道没有其他API或库可以在Android 4.0.4+上使用来实现这个吗?我只想处理一些定期任务队列任务,以便在网络恢复时完成它们,如果在计划任务时网络不可用。 - user5229505
1
@Ali:AlarmManager自Android 1.0以来就存在了。然而,你需要负责检测是否有互联网访问权限并自行处理。 - CommonsWare
1
@CommonsWare 感谢您提醒我关于AlarmManager的事情。(有时候,简单的东西很容易被忽视!) 我已经更新了答案。 - Trevor Johns
感谢您的评论。 - user5229505

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接