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

当应用程序处于后台状态时,Google FCM getIntent未返回预期的数据

池永长
2023-03-14
{
 "data": {
  "body": "here is body",
  "title": "Title",
  "click_action": "YOUR_ACTION"
 },
 "to": "ffEseX6vwcM:APA91bF8m7wOF MY FCM ID 07j1aPUb"
}
<activity
            android:name=".NotificationActivity"
            android:screenOrientation="portrait"
            android:theme="@style/Theme.AppCompat.Dialog"
            android:windowSoftInputMode="stateHidden" >

            <intent-filter>
                <action android:name="YOUR_ACTION" />
                <category android:name="android.intent.category.DEFAULT" />
            </intent-filter>
        </activity>
Bundle bundle=getIntent().getExtras();
        if(bundle!=null) {
            for (String key : bundle.keySet()) {
                Object value = bundle.get(key);
                Log.d("DATA_SENT", String.format("%s %s (%s)", key,
                        value.toString(), value.getClass().getName()));
            }
        }

collapse_key:com.myapp.package_name

但我预期的通知数据在哪里?

以下是我的系统配置:

Android Studio版本:2.1.3

Google Play服务版本:com.Google.android.gms:play-services:9.2.1

    null

共有1个答案

伊俊能
2023-03-14
{
 "data": {
  "body": "here is body",
  "title": "Title"
 },
"notification": {
  "body": "here is body",
  "title": "Title",
  "click_action": "YOUR_ACTION"
 },
 "to": "ffEseX6vwcM:APA91bF8m7wOF MY FCM ID 07j1aPUb"
}

通知消息:通知消息在后台或前台工作。当app在后台时,通知消息会传递到系统托盘。如果应用程序在前台,则消息由onMessageReceived()或didReceiveRemoteNotification回调处理。这些实质上就是所谓的显示消息。

 类似资料:
  • 在应用程序处于活动状态时,调用DidReceiveEmotentification方法,当应用程序处于后台和非活动状态时,不调用DidReceiveEmotentification方法。 代码:- Func应用程序(_应用程序:UIApplication,didReceiveRemote teNotify userInfo:[AnyHasable:任何],fetchCompletionHandle

  • 我已经将我的应用程序升级到了API 26,我面临着一些新的后台执行限制问题。 在Oreo设备上,只要我的应用程序进入后台,我的应用程序就会因日志中写入的空闲状态而被操作系统停止: 然后,我尝试再次启动我的应用程序,最后一个活动被正确还原(包括其片段和所有显示的数据) 问题是我的服务没有重新启动。 它们都在onstart命令中返回START_STICKY,该命令应该告诉操作系统,服务在被终止后应该重

  • 我正在Android上使用Firebase云消息。 当应用程序位于前台时,我可以成功接收通知和数据消息 文档说明,如果在应用程序处于后台时收到通知消息,则Firebase将代表应用程序向系统托盘发送通知。这对我不起作用 如果发送了数据消息且应用程序位于后台,则会成功调用onMessageReceived方法 最麻烦的情况是,我强制停止应用程序,然后尝试发送通知或数据消息。在这种情况下,不会调用on

  • 根据文件: 如果希望前台应用程序接收通知消息或数据消息,则需要编写代码来处理onMessageReceived回调。 null 我是不是漏掉了什么?不应该是同一个服务处理应用程序的两个应用程序状态来接收消息吗?我不想在app已经打开时显示系统栏通知,但我确实想改变UI中的一些元素,以指示用户他们在聊天中有新消息。 代码如下: 服务:

  • 我创建了一个自定义后台服务,它正在扩展IntentService。当我的应用程序进入后台时,我会调用这个类。startService()。Firsly onStartCommand在我返回START_STICKY的地方被调用(就像我读过一些其他帖子,以保持我的服务处于活动状态,并在由于内存不足而被终止时根据需要重新创建)。在那之后,我将实现onHandleIntent(intent)方法,从调用者