我需要从android中的FCM通知中获取数据并将其存储在本地,但是问题是我只能在app处于前台然后调用onMessageRecieved
或用户点击通知时才能这样做。我想在用户收到通知并且应用未运行时(即使在后台或前台)也要获取通知的数据。请提出一些建议。预先谢谢你。
答案 0 :(得分:1)
您可以使用BroadcastReceiver
public class FirebaseDataReceiver extends BroadcastReceiver {
private final String TAG = "FirebaseDataReceiver";
public void onReceive(Context context, Intent intent) {
Bundle bundle = intent.getExtras();
if (bundle != null) {
Set<String> keys = intent.getExtras().keySet();
for (String key : bundle.keySet()) {
Object value = bundle.get(key);
// You can use key and values here
}
}
}
}
Manifest.xml
<application>
............
<receiver
android:name="PackageName.FirebaseDataReceiver"
android:exported="true"
android:permission="com.google.android.c2dm.permission.SEND">
<intent-filter>
<action android:name="com.google.android.c2dm.intent.RECEIVE" />
</intent-filter>
</receiver>
............
</application>
答案 1 :(得分:0)
使用FCM控制台,您只能发送通知消息。通知消息可以由前台应用程序中的onMessageReceived方法处理,并在后台应用程序中传递到设备的系统托盘。用户点击通知,将打开默认的应用程序启动器。如果要在应用程序的每种状态下处理通知,则必须使用数据消息和onMessageReceived方法。
有关更多信息,请参考this。