如何在前台运行GcmListenerService

时间:2015-11-10 09:47:26

标签: android google-cloud-messaging foreground-service

我的GCM服务有时会出现问题,当智能手机的RAM自动清除时,该服务会关闭(如果您需要更多详细信息,请阅读this)。

据我所知,如果我将服务设置为在前台运行,它应该有助于系统用RAM删除它。 Service.class onStartCommand()的方法通常用于运行startForeground()方法。

但是使用最新版本的GCM实现是不可能的,因为父onStartCommand()的{​​{1}}方法被定义为 final ,我无法覆盖它。

那么如何将我的gcm接收器设置为前景中的朗姆酒?

这是我关于GCM的明显部分。

GCMListenerService.class

提前谢谢。

1 个答案:

答案 0 :(得分:0)

这个问题已经很久了,但我认为值得回答未来读者的利益。

使用GCM(或新的FCM)无需将GCMListenerService保持在前台。
实际上,根本不需要保持应用运行。

当系统收到GCM消息时,您的应用程序将启动,并且将执行相关服务(GCM中的GCMListenerService或FCM中的FirebaseMessagingService)。

这篇文章提出的真正问题是:
当应用程序未运行时,GCM消息未到达。

这是由于xiaomi阻止GCM消息的特殊功能 请参阅:安全部分内的自动启动白名单 http://en.miui.com/thread-117992-1-1.html