2017-02-20 76 views
2

我正在使用Firebase-SDK将推送消息发送到我的应用程序。在处理两个或三个推送通知事件时,当我向后台应用程序发送第三个或第四个推送通知事件模式,然后点击,通知它恢复该后台活动,而不是启动默认的启动器activity.is这个错误在firebase-SDK中。我使用firebase版本9.8.0.any帮助将会更有帮助。Firebase SDK在应用程序为后台时未打开启动器活动

重现步骤。

杀死应用程序并发送推送它在处理这个推送应用程序在后台并发送推送后重定向到期望的活动。它将以intent extras为空来恢复上次活动。

+0

作为第一步请更新到最新的SDK版本:10.2.0 –

+0

@DiegoGiorgini确定后再。 –

回答

0

在清单:

<activity android:name=".activity"> 
    <intent-filter> 
     <action android:name="extra" /> 
     <category android:name="android.intent.category.DEFAULT" /> 
    </intent-filter> 
</activity> 

在活动:

getIntent()hasExtra( “额外的”);

在有效载荷:

data.put( “click_action”,click_action); data.put(click_action,argument);

您的click_action应该是参数键。

1

我们可以在应用程序不是内存或在后台从FCM接收后发起活动,我们必须发送通知的数据负载中的clickAction并为清单中的特定活动设置操作, 这会对您有所帮助。

+0

感谢您的回复让我尝试一下。因为它有时会启动启动器活动而无需在有效内容中传递click_action。 –

+0

我也试过click_action属性,但仍然3或4次后它不工作。我使用intent标志intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_CLEAR_TOP); –

+0

@HardikMehta你必须管理通知,当应用程序在后台,当应用程序在前台。为此,您需要发送通知负载和数据负载中的click_action。 –

1

我发现的一种解决方法是使用android:launchMode="singleTask"以启动活动。当然,singleTask可能不是你想要的,但在我的情况下它可以工作。

相关问题