繁体   English   中英

当应用不在任务中或被杀死时,如何获取FCM通知数据?

[英]How to get FCM notification data when app is not in task or killed?

我需要从android中的FCM通知中获取数据并将其存储在本地,但是问题是我只能在应用程序处于前台然后调用onMessageRecieved或用户点击通知时做到这一点。 我想在用户收到通知并且应用未运行时(即使在后台或前台)也要获取通知的数据。 请提出一些建议。 先感谢您。

您可以使用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>

通过使用FCM控制台,您只能发送通知消息。 通知消息可以由前台应用程序中的onMessageReceived方法处理,并在后台应用程序中传递到设备的系统托盘。 用户点击通知,将打开默认的应用程序启动器。 如果要在应用程序的每种状态下处理通知,则必须使用数据消息和onMessageReceived方法。

请参阅以获取更多信息。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM