我试图测试我的应用程序,通过控制台发送通知的防火墙云消息,但当我的应用程序在前台或仍在运行。通知不会显示在设备中,并且将触发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>这是我的消防队
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");
}
}发布于 2018-09-17 17:12:05
您正在观察的是通知类型消息是如何在Android上工作的。当您的应用程序在前台时,您将不会在托盘中看到通知。
请阅读有关处理消息的文档理解所期望的。特别是查看“在摘要”框,它告诉您在应用程序的前景和背景状态之间消息处理是如何不同的。并不是说当你的应用程序在前台的时候,你只能期望你的消息会在onMessageReceived中被看到。如果需要的话,您可以自己在那里构造一个通知。
发布于 2018-09-17 17:12:47
当应用程序处于前台时,默认实现将不会显示通知。您需要自己处理onMessageReceived(...),并根据需要创建和显示通知。
来自文档
根据接收应用程序的前台/后台状态,Firebase通知的行为不同。如果您希望预先准备的应用程序接收通知消息或数据消息,则需要编写代码来处理onMessageReceived回调。有关通知和数据消息之间区别的解释,请参阅邮件类型。
https://stackoverflow.com/questions/52372511
复制相似问题