![](/img/trans.png)
[英]Firebase (FCM): open activity and pass data on notification click. android
[英]open activity on Firebase notification received
我想在收到通知时自动打开一个活动,当应用程序在前台时它工作正常但当应用程序在后台时它不工作。
Intent intent = new Intent(this, NewPickUpRequestActivity.class);
intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_CLEAR_TASK);
intent.putExtra(EXTRA_TRIP_ID, tripId);
Helper.setStringValue(KEY_LAST_TRIP_TRIP_ID, tripId);
startActivity(intent);
试试这个
Intent intent = new Intent("android.intent.category.LAUNCHER");
intent.setClassName("com.your.package", "com.your.package.MainActivity");
intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
startActivity(intent);
当您无法启动活动https://developer.android.com/guide/components/activities/background-starts时,您应该考虑一些例外情况
有两种类型的消息数据消息和通知消息。 无论应用程序是在前台还是后台,数据消息都在 onMessageReceived 中处理。 数据消息是 GCM 传统上使用的类型。 当应用程序在前台时,仅在 onMessageReceived 中接收通知消息。 当应用程序在后台时,会显示自动生成的通知。 当用户点击通知时,他们将返回到应用程序。 包含通知和数据有效负载的消息被视为通知消息。 Firebase 控制台始终发送通知消息。
示例代码:- 您需要像这样在通知负载中指定 click_action
$noti = array
(
'icon' => 'new',
'title' => 'title',
'body' => 'new msg',
'click_action' => 'open_NewPickUpRequestActivity'
);
现在在manifest
文件中,在您的NewPickUpRequestActivity
活动标签中执行此操作
<activity
android:name=".NewPickUpRequestActivity">
<intent-filter>
<action android:name="open_NewPickUpRequestActivity" /> // should be same as in click action
<category android:name="android.intent.category.DEFAULT"/>
</intent-filter>
</activity>
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.