使用FCM进行Android推送通知

时间:2017-02-16 05:50:31

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

以下是我的通知案例: 通知到达时,应用可能是前景,背景或已关闭

1。对于前景: 当用户点按通知时,应用应显示主要活动。

2。背景: 当用户点击通知时,应该将应用程序带到前面并显示主要活动

第3。应用关闭时: 当用户点击通知时,应该打开应用程序,并且应该显示主要活动。

当我用Intent.FLAG_ACTIVITY_SINGLE_TOP& PendingIntent with PendingIntent.FLAG_ONE_SHOT。它按预期工作,但是当用户点击通知时,它不会调用主要活动的onCreate方法。

private void showNotification() {

        Intent intent = new Intent(this, DashboardActivity.class);
        intent.putExtra(AppConstants.SCREEN, screen);
        intent.putExtra(AppConstants.USER_ID, user_id);
        intent.putExtra(AppConstants.TABLE_ID, table_id);
        intent.addFlags(Intent.FLAG_ACTIVITY_SINGLE_TOP);

        PendingIntent pendingIntent = PendingIntent.getActivity(this, 0, intent,
            PendingIntent.FLAG_ONE_SHOT);

    Uri defaultSoundUri = RingtoneManager.getDefaultUri(RingtoneManager.TYPE_NOTIFICATION);
    NotificationCompat.Builder notificationBuilder = new NotificationCompat.Builder(this)
            .setSmallIcon(getNotificationIcon())
            .setContentTitle(getResources().getString(R.string.app_name))
            .setContentText(message)
            .setAutoCancel(true)
            .setSound(defaultSoundUri)
            .setContentIntent(pendingIntent);

    NotificationManager notificationManager =
            (NotificationManager) getSystemService(Context.NOTIFICATION_SERVICE);

    notificationManager.notify(0, notificationBuilder.build());
    }

如果你考虑使用Above代码,那么当用户点击通知时,需要从MainActivity(DashboardActivity)执行一个方法。

注意:当App是Foreground / Background时,它不应该关闭并打开新的。它必须在现有应用程序中更新。

希望你了解我的情况。提前谢谢。

1 个答案:

答案 0 :(得分:0)

当用户点击有"Intent.FLAG_ACTIVITY_SINGLE_TOP"意图的通知时,不会调用意图的onCreate方法。当用户点击通知时,它会调用一个方法,如下所示:

@Override
protected void onNewIntent(Intent intent) {}

感谢您阅读此问题:)