gpt4 book ai didi

android - 如何在前台运行 GcmListenerService

转载 作者:塔克拉玛干 更新时间:2023-11-02 19:03:50 28 4
gpt4 key购买 nike

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

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

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

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

这是我关于 GCM 的 list 部分。

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="my.app.path" >

<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />

<uses-permission android:name="android.permission.WAKE_LOCK" />
<uses-permission android:name="android.permission.VIBRATE" />
<uses-permission android:name="com.google.android.c2dm.permission.RECEIVE" />
<!-- ... other permissions -->

<permission
android:name="my.app.path.permission.C2D_MESSAGE"
android:protectionLevel="signature" />

<uses-permission android:name="my.app.path.permission.C2D_MESSAGE" />

<application
...>
<!-- ... activites... -->

<receiver
android:name="com.google.android.gms.gcm.GcmReceiver"
android:exported="true"
android:permission="com.google.android.c2dm.permission.SEND" >
<intent-filter>
<action android:name="com.google.android.c2dm.intent.RECEIVE" />
<category android:name="my.app.path" />
</intent-filter>
</receiver>

<service
android:name=".MyGcmListener"
android:exported="false"
android:enabled="true" >
<intent-filter>
<action android:name="com.google.android.c2dm.intent.RECEIVE" />
</intent-filter>
</service>

</application>

</manifest>

提前谢谢你。

最佳答案

这个问题很老,但我认为为了 future 的读者的利益值得回答。

使用 GCM(或新的 FCM)没有必要将 GCMListenerService 保持在前台。
事实上,根本不需要保持应用程序运行。

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

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

这是由于小米的一个特殊功能,它阻止了 GCM 消息。
请参阅:安全部分中的自动启动白名单。
http://en.miui.com/thread-117992-1-1.html

关于android - 如何在前台运行 GcmListenerService,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33627053/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com