确定是否根据FCM通知调用活动



我的应用程序正在使用FCM通知。通知没有数据。因此,无论何时应用程序处于后台,主活动都会在通知中打开。我的主活动上有4个选项卡。如果应用程序是从通知中打开的,我想打开选项卡4,否则为选项卡2。

我想检查主活动是否从通知中打开。由于我的通知没有数据。我不会在Intent中获得任何附加功能。

intent上放置一个Extra,以识别Activity启动的来源

从通知中调用时执行此

Intent notificationsIntent = new Intent(NotificationsActivity.this, MainActivity.class);
notificationsIntent.putExtra("Source", "Notification");
startActivity(notificationsIntent);

在您的MainAcitivity检查中,如

if(getIntent().getStringExtra("Source") == "Notification") {
//set current tab to 4
} else {
//set current tab to 2
}

当应用程序通过通知消息(而不是数据消息(打开时,意图将包含一个source值,您可以检查该值以检测活动是否使用通知打开。

if (intent.hasExtra("source")) {
// set tab to 4
}

如果您只使用通知消息(没有数据消息(,您可以检查活动中收到的不同意向值:google.delivered_prority,google.sent_time,google.ttl,google.original_priority,from,google.message_id,gcm.n.analystics_data,collapse_key

@Override
protected void onNewIntent(Intent intent) {
super.onNewIntent(intent);
boolean bFromNotification = intent.hasExtra("google.delivered_priority");
}
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
boolean bFromNotification = getIntent().hasExtra("google.delivered_priority");
}

最新更新