猿问

在 Android 中单击 Firebase 通知时将数据发送到活动

在我的应用程序中,我想使用fireBase进行通知。

我想当点击通知时(当应用程序关闭时,我的意思是应用程序是background)将数据发送putExtra到mainActivity。

我下面写的代码,但点击时通知(在应用程序是背景),但让我空了getStringExtra!


MyNotificationManager 类:


public class MyNotificationManager {


    private Context mCtx;

    private Uri soundUri;

    private static MyNotificationManager mInstance;


    public MyNotificationManager(Context context) {

        mCtx = context;

    }


    public static synchronized MyNotificationManager getInstance(Context context) {

        if (mInstance == null) {

            mInstance = new MyNotificationManager(context);

        }

        return mInstance;

    }


    public void displayNotification(String title, String body) {


        soundUri = RingtoneManager.getDefaultUri(RingtoneManager.TYPE_NOTIFICATION);


        Intent intent = new Intent(mCtx, MainActivity.class);

        intent.putExtra("fcm_notification", "Y");


        PendingIntent pendingIntent = PendingIntent.getActivity(mCtx, 0, intent, PendingIntent.FLAG_UPDATE_CURRENT);


        NotificationCompat.Builder mBuilder = new NotificationCompat.Builder(mCtx, Constants.NOTIF_CHANNEL_ID)

                .setSmallIcon(R.mipmap.ic_launcher)

                .setContentTitle(title)

                .setSound(soundUri)

                .setAutoCancel(true)

                .setVibrate(new long[]{100, 200, 300, 400, 500, 400, 300, 200, 400})

                .setContentText(body)

                .setContentIntent(pendingIntent);


        NotificationManager mNotifyMgr = (NotificationManager) mCtx.getSystemService(NOTIFICATION_SERVICE);


        if (mNotifyMgr != null) {

            mNotifyMgr.notify(1, mBuilder.build());

        }

    }

}


当点击通知(在应用程序是后台)时,在这一行中向我显示消息ToastString value = getIntent().getStringExtra("fcm_notification");

我该如何解决?


泛舟湖上清波郎朗
浏览 140回答 2
2回答

慕村9548890

从控制台发送通知时,从“高级选项”添加自定义数据:出于某种原因,firebase 不允许密钥以 fcm 开头。您不能使用fcm_notification. 使用不同的键。对于上图,按如下方式接收密钥:String value = getIntent().getStringExtra("test_key");

幕布斯6054654

尝试这个:Intent intent = new Intent(mCtx, MainActivity.class);intent.putExtra("EXTRA_DATA", title);并获得:String value = getIntent().getStringExtra("EXTRA_DATA");最好换钥匙。此外,您似乎需要从控制台发送数据,然后将数据发送到另一个Activity.我已经使用当前通知title来检查它是否返回标题。如果它返回了值,那么,尝试从控制台发送数据。
随时随地看视频慕课网APP

相关分类

Java
我要回答