在当前活动中处理 Android 推送通知。
问题:如何在当前Activity上处理Android推送通知?
原因:在FirebaseMessagingService接收到通知后,需要将数据发送给需要的Activity,并且需要保证安全。
解决方法:
1. 创建一个本地广播接收器。
2. 在FirebaseMessagingService中的onMessageReceived方法中获取到数据,并通过本地广播接收器发送数据。
3. 在Activity的onCreate方法中注册广播接收器,并通过IntentFilter指定过滤的Action。
4. 在Activity的onDestroy方法中注销广播接收器。
代码如下:
在FirebaseMessagingService中:
public void onMessageReceived(RemoteMessage remoteMessage) { super.onMessageReceived(remoteMessage); // 获取到接收到的数据 String myData = remoteMessage.get("MyDataKey"); // 通过本地广播接收器发送数据 Intent intent = new Intent("IntentFilterAction"); intent.putExtra("MyDataKey", myData); LocalBroadcastManager.getInstance(this).sendBroadcast(intent); }
在Activity的onCreate方法中:
// 创建广播接收器 BroadcastReceiver broadcastReceiver = new BroadcastReceiver() { public void onReceive(Context context, Intent intent) { super.onReceive(context, intent); // 从intent中获取数据 String mydata = intent.getExtras().getString("MyDataKey"); // 处理数据 // ... } }; // 注册广播接收器 IntentFilter intentFilter = new IntentFilter("IntentFilterAction"); LocalBroadcastManager.getInstance(getContext()).registerReceiver(broadcastReceiver, intentFilter);
在Activity的onDestroy方法中:
// 注销广播接收器 LocalBroadcastManager.getInstance(getContext()).unregisterReceiver(broadcastReceiver);
希望对你有所帮助 🙂