当前位置: 首页 > 知识库问答 >
问题:

从最近列表中刷取应用程序时未调用Android Firebase MyFirebaseMessagingService

方玄天
2023-03-14

编辑24/11/2016:我刚刚收到来自Firebase支持的消息。他们认为这是华硕的问题。我使用的设备是华硕ZenFone 2激光器。以下是他们的回应:

从你的测试结果来看,情况似乎并非如此。但是华硕还有很多其他的方法可以让通知停止工作,不幸的是我们无法检查所有的方法。

您最好联系华硕支持,如果有任何消息让我们知道。

因为这对我的客户来说是一个低优先级的问题,所以我现在不打算进一步探讨它。不幸的是,我没有时间在其他设备上测试同样的问题。如果这在未来发生变化,我会相应地更新这个问题。到现在为止,我会认为这件事没有解决。我将有兴趣听到如果其他人有相同的问题在其他品牌的电话。

  • 停止的应用程序不应接收消息。
  • 从最近列表中刷取应用程序不应停止应用程序。

有趣的部分是,我的应用程序似乎并没有被停止。运行ADB shell dumpsys package grep stopped时,我的包返回

User 0:  installed=true hidden=false stopped=false notLaunched=false enabled=0

这表明它没有停止,并且应该仍然接收消息(根据非常有帮助的Firebase支持工程师的说法)。然而,该应用程序没有接收到这些消息。

编辑27/09/2016:我省略了有效负载中的通知对象,并将该信息改为数据对象。这并不能解决问题。我想我还没有弄清楚到底是什么问题。问题是,当应用程序被关闭(最近被刷出)时,服务不再被调用或接收通知。

原始职位

也有类似的帖子,但没有一篇是针对这个问题的,也没有一篇是给出解决方案的。

我正在实现FCM以获取通知。(我是FCM的新手。)消息负载是通知数据的组合。当应用程序处于前台时,服务激发OnMessageReceived()。当应用程序在后台时(即我按下home按钮),OnMessageReceived()不会触发(正如预期的那样),而只是显示一个通知。我仍然可以看到MyFirebaseMessagingService.onCreate()onDestroy()上的日志语句,这很棒。

现在,当我按下“最近的应用程序”按钮关闭该应用程序,并将该应用程序从列表中刷出时,我不再收到任何通知。不再调用onCreate()onDestroy()。则不会显示任何通知。我也希望在这个场景中出现一个通知。

有效载荷示例:

{
    "to":"token",
    "priority":"high",
    "notification": {
        "body":"hello",
        "title":"Message from Mom",
        "click_action":"ACTIVITY_MAIN"
    },
    "data":{
        "open":"chat"
    }
}

FCM服务:

public class MyFirebaseMessagingService extends FirebaseMessagingService {

    @Override
    public void onCreate() {
        super.onCreate();
        Log.v(DmcApplication.TAG, "Service Created");
    }

    @Override
    public void onDestroy() {
        super.onDestroy();
        Log.v(DmcApplication.TAG, "Service Destroyed...");
    }

    @Override
    public void onMessageReceived(RemoteMessage remoteMessage) {
        Log.v(DmcApplication.TAG, "Message received!");
        EventBus.getDefault().post(new MessageEvent(remoteMessage.getNotification().getBody()));
    }

}

清单的位(在相关情况下)

<service
    android:name="com.example.package.myFirebaseMessagingService"
    android:exported="false">
    <intent-filter>
        <action android:name="com.google.firebase.MESSAGING_EVENT" />
    </intent-filter>
</service>

日志:

//Log when app is in foreground and message comes in:
V/coo: Service Created
V/coo: Message received!
V/coo: Service Destroyed...

//Log when app is in background and message comes in:
V/coo: Service Created
V/coo: Service Destroyed...

//Log when app is killed:
<silence...>

任何帮助都将非常感谢,因为我已经被困在这几天了。

共有1个答案

广乐邦
2023-03-14

我遇到了同样的问题,看着你的“优先级:高”字符串,它看起来像是你发送到Android和iOS。我最终去掉了消息中的通知部分,只是把我需要的信息放进了数据消息中。数据负载部分触发您的服务,即使它是后台的或从最近的应用程序中删除。

在我的服务器上,我检查用户是否从iOS设备或Android设备注册了他们的令牌,并相应地发送有效载荷,其中iOS设备的通知有效载荷和Android设备的数据有效载荷。

 类似资料:
  • 我正在开发一款针对ICS手机的应用程序。 在应用程序中,我有一个飞溅屏幕和几个其他屏幕,可以从飞溅屏幕或通过NFC触摸启动。我的一个活动包含以下意图过滤器: 由于某些原因,我无法理解,每当启动包含上述意图过滤器的活动时,当用户按下“主页”按钮时,该活动不会出现在“最近的应用”列表中。通过调试器,我验证了它没有被销毁,只是停止了。 如果启动屏幕在ThingActivity之前打开,则启动将显示在最近

  • 无错误FCM工作良好,当应用程序打开,如果关闭或刷掉,通知将不会触发。

  • 我使用的是OnePlus3(7.1.1)有一个问题,当应用程序从最近的任务中被刷掉(变死),然后如果我从Firebase控制台推送一个通知,它将不会收到任何通知时,它不会收到通知。 有解决办法吗?vivo、oppo、虎外、秀米、雷迪米、米都有同样的错误 和同样的代码工作与索尼,三星摩托。!

  • 我在应用程序中有一个奇怪的行为,当创建新的活动实例时,传入的文本通过onCreate方法存储在sharedData变量中,当调用应用程序onDestroy方法(通过按后退按钮)并从最近使用的应用程序开始活动时,调用onCreate方法是正常的,但intent.getAction()和intent.getType()也返回有效值,如果condition正在执行!为什么会这样?

  • 我是android开发的新手,我的应用程序在调用特定活动时会崩溃。(“governanaceactivity”是活动的名称)当我从MainActivity调用治理活动时,我的应用程序会崩溃,其他菜单工作得很好,唯一的问题是这个活动。 这是GovernanceActivity **所有其他活动都很好,只有这个活动有问题 这是我的宣言** Blockquote 05-21 03:09:53.747 1

  • 问题内容: 我有一个View Controller,其中我的值为0(标签),而当我从另一个视图控制器中打开该View Controller时,我已设置为将label的值设置为20。它可以正常工作,但是当我关闭我的应用程序并再次打开我的应用程序时,该值不会更改,因为,并且没有任何调用。打开我的应用程序时该怎么打电话。我需要做些什么吗? 问题答案: 我对事件的确切顺序感到好奇,所以我对应用程序进行了如