通知未出现在应用程序的后台状态和已杀死状态

时间:2017-06-21 15:42:07

标签: android node.js firebase firebase-cloud-messaging google-cloud-functions

我试图在上传帖子时将通知推送到应用的最终用户。当应用程序处于前台时它可以正常工作,但是当应用程序处于后台或被杀死时,它不会显示。当应用程序在后台被杀或运行时,有没有办法显示通知。 这是我使用

的node.js代码
import android.app.Notification;
import android.app.NotificationManager;
import android.app.PendingIntent;
import android.content.Context;
import android.content.Intent;
import android.util.Log;
import com.google.firebase.messaging.FirebaseMessagingService;
import com.google.firebase.messaging.RemoteMessage;
public class MyFirebaseMessageService extends FirebaseMessagingService {
@Override
public void onMessageReceived(RemoteMessage remoteMessage) {
    super.onMessageReceived(remoteMessage);
    Log.e("notification---",remoteMessage.getNotification().getBody());

    sendnotification(remoteMessage.getNotification().getBody());
}
private void sendnotification(String body){
    Intent intent = new Intent(this, MainActivity.class);
// use System.currentTimeMillis() to have a unique ID for the pending intent
    PendingIntent pIntent = PendingIntent.getActivity(this, (int) 
System.currentTimeMillis(), intent, 0);

// build notification
// the addAction re-use the same intent to keep the example short
    Notification.Builder n  = new Notification.Builder(this)
            .setContentTitle("Best Deals")
            .setContentText(body)
            .setSmallIcon(R.mipmap.ic_launcher)
            .setContentIntent(pIntent)
            .setAutoCancel(true);

    NotificationManager manager = (NotificationManager) 
    getSystemService(Context.NOTIFICATION_SERVICE);
    manager.notify(0, n.build());
}
}

这是MyFirebaseMessageService:

{{1}}

感谢。

2 个答案:

答案 0 :(得分:1)

如果问题是仅在应用程序处于前台时调用onMessageReceived(),并且当它在后台时显示通知但是您的方法未被调用...而不是正常工作。请参阅文档:

  

当您希望FCM处理显示时,请使用通知消息   代表您的客户端应用程序发送通知。在您使用时使用数据信息   想要处理客户端应用上的消息。

在此处阅读更多内容:https://firebase.google.com/docs/cloud-messaging/concept-options#notifications_and_data_messages

您正在发送通知消息。相反,你应该发送一条数据信息

如果问题不同:当应用程序处于后台时,没有任何事情发生,这可能是您设备的问题。见Push notifications using FCM not received when app is killed android

答案 1 :(得分:1)

我确信代码是完美的。但是您正在测试的设备可能存在一些问题。请尝试使用其他设备测试代码。