【问题标题】:Firebase Cloud Messaging not showing notification bar when app is open应用程序打开时,Firebase Cloud Messaging 不显示通知栏
【发布时间】:2018-09-17 16:56:26
【问题描述】:

我尝试通过控制台在 Firebase 云消息传递中发送通知来测试我的应用程序,但是当我的应用程序在前台或仍在运行时。通知未显示在设备中,并且触发了 firebase 消息服务中的日志。

但是当我销毁我的应用程序时,通知工作得很好。

这是我的清单

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    package="com.example.yehezkiel.eclassapp">

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

    <application
        android:allowBackup="true"
        android:icon="@mipmap/eclass_logo1"
        android:label="@string/app_name"
        android:roundIcon="@mipmap/eclass_logo1"
        android:supportsRtl="true"
        android:theme="@style/AppTheme"
        tools:replace="android:icon">


        <service
            android:name=".myFirebaseInstanceTokenID">
            <intent-filter>
                <action android:name="com.google.firebase.MESSAGING_EVENT"/>
            </intent-filter>
        </service>

        <activity
            android:name=".LoginActivity"
            android:label="@string/app_name">
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />
                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>

        <activity android:name=".MainActivity" />
        <activity android:name=".Tugas" />
        <activity
            android:name=".DetailActivity"
            android:label="@string/title_activity_detail"
            android:theme="@style/AppTheme" />
        <activity android:name=".NilaiActivity" />
        <activity android:name=".BaseActivity" />
        <activity android:name=".MateriActivity" />
        <activity android:name=".NilaiDetailActivity" />
        <activity android:name=".PesertaActivity"></activity>


    </application>
</manifest>

这是我的firebasemessagingservice

public class myFirebaseInstanceTokenID extends FirebaseMessagingService {


    private static final String TAG = "FirebaseMessagingServce";

    @Override
    public void onMessageReceived(RemoteMessage remoteMessage) {

        if (remoteMessage.getData().size() > 0) {
            Log.e(TAG, "Message data payload: " + remoteMessage.getData());
        }
        Log.e(TAG, "Tidak ada Data");

    }
}

【问题讨论】:

    标签: android firebase push-notification firebase-cloud-messaging


    【解决方案1】:

    您观察到的是通知类型消息在 Android 上的工作方式。当您的应用在前台时,您不会在托盘中看到通知。

    read the documentation on handling messages 了解会发生什么。尤其是“摘要”框,它告诉您应用程序的前台和后台状态之间的消息处理有何不同。并不是说当您的应用程序在前台时,您只能期望您的消息会在onMessageReceived 中看到。如果需要,您可以自己在那里构建一个通知。

    【讨论】:

      【解决方案2】:

      当您的应用程序在前台时,默认实现不会显示通知。您需要自己处理onMessageReceived(...),并根据需要创建和显示通知。

      来自documentation

      Firebase 通知的行为会有所不同,具体取决于 接收应用程序的前台/后台状态。如果你想 前台应用程序接收通知消息或数据消息, 您需要编写代码来处理 onMessageReceived 回调。 用于解释通知和数据之间的区别 消息,请参阅消息类型。

      【讨论】:

        猜你喜欢
        • 2020-01-29
        • 1970-01-01
        • 2020-08-25
        • 2017-12-23
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多