在系统托盘的通知消息中打开服务或BroadcastReceiver

时间:2018-11-04 06:32:42

标签: android firebase google-cloud-messaging

当您的应用程序在后台运行时,Android会将通知消息定向到系统托盘。默认情况下,用户点击通知会打开应用启动器。 但是我想启动服务或BroadcastReceiver,这可能吗?

如果可能,请告诉我代码。

如果在通知到达后台应用程序时无法打开网址或加入电报组,这是不可能的。

1 个答案:

答案 0 :(得分:0)

如果您希望通过最少的更改就可以使用它,那就有办法了。

像这样向您的MainActivity添加意图过滤器(如果尚未完成)

<activity 
        android:name=".ui.MainActivity"
        android:label="@string/app_name">
        <intent-filter>
            <action android:name="android.intent.action.MAIN" />
            <category android:name="android.intent.category.LAUNCHER" />
        </intent-filter>
</activity>

现在,默认情况下,Android会在MainActivity上向您发送通知。根据需要,从Firebase控制台或用于发送通知和数据消息的其他自定义控制台发送一些键值对(也称为可选数据消息)。

在MainActivity的 onCreate()中,键和值将作为意向附加提供给您。

创建一个像这样的函数来拦截和利用您想要的这些意图附加功能。

private void handleFCM()
{
    if (getIntent().getExtras() != null) {
        String value=(String) getIntent().getExtras().get("key");

        if(value!=null) {

           //you have the value now, handle the value according to you need
        }

    }

}