我的应用程序正在使用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");
}