【发布时间】:2016-11-17 09:13:28
【问题描述】:
当应用程序处于后台时,我遇到了一个非常奇怪的问题,即第二次没有接收到有效负载数据。
For ex -(当我还没有启动我的应用程序时)
- 当我第一次收到通知时,它会打开我的应用程序并阅读通知中的附加内容。
- 当我收到第二条通知时,它会最大化我的应用或将我的应用置于最前面,但不会阅读额外内容。
当我的应用程序打开时,一切正常。即使我在手动打开应用程序后将其置于后台,所有通知也可以正常工作。
这是我的清单代码
<activity
android:name=".PagerActivity"
android:launchMode="standard">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
<category android:name="android.intent.category.DEFAULT" />
</intent-filter>
</activity>
这是我的活动代码
@Override
public void onNewIntent(Intent newIntent) {
this.setIntent(newIntent);
// Now getIntent() returns the updated Intent
if(getIntent().hasExtra("sno")){
Log.d("New Intent DATA", "Yes it has the data sno is: " + getIntent().getExtras().getString("sno"));
}
}
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
if(getIntent().hasExtra("sno")){
Log.d("DATA", "Yes it has the data");
}
}
我尝试了很多研究但无济于事。如果您需要任何其他详细信息,请告诉我。
我正在使用 firebase 发送带有自定义数据的通知。我也尝试过通过网络服务器发送,但仍然无法正常工作。
我调试了我的应用程序,发现当我通过第二个通知打开我的应用程序时,没有创建新实例。
【问题讨论】:
-
你实现
onMessageReceived了吗? -
@mallaudin OnMessageReceived 我猜是当您的应用程序处于前台时。这里我的应用在后台。
-
onMessageReceived将被调用data messages即使应用程序在后台。 -
我同时发送通知和数据。如果您的应用处于后台或关闭状态,则通知中心会显示一条通知消息,并且该消息中的任何数据都会传递给由于用户点击通知而启动的意图。
标签: android push-notification notifications android-notifications firebase-notifications