点击通知活动中的后退按钮后,Android打开主活动



我正在开发一个应用程序,它将在MainActivity中的Recycler视图中显示卡视图列表。单击卡片视图时,它将启动不同的活动。流量是SplashScreenActivity->MainActivity(回收器视图(->DetailsActivity如果我们通过单击应用程序图标启动应用程序,则流程运行良好。

作为该应用程序的一部分,我将向该应用程序发送FCM通知。只要收到通知,就会启动DetailsActivity,在此期间MainActivity将不在堆栈中。每当按下Details Activity的后退按钮时,我都会盯着MainActivity。如果未从Notification调用DetailsActivity,则我不会再次调用MainActivity。

下面是我为处理Details Activity中的back按钮所做的代码片段。

@Override
public void onBackPressed() {
if (isFromNotification) {
System.out.println("Start from Notification");
Intent intent = new Intent(this,MainActivity.class);
intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
super.onBackPressed();
startActivity(intent);
}else {
System.out.println("Start from Normal Mode");
super.onBackPressed();
}
}

我有两个问题。

i( 收到FCM时,在DetailsActivity中查看通知。按下后退按钮后,MainActivity将启动,DetailsActivity不会终止。再次按下MaainActivity的后退按钮后,将启动Details Activity。

ii(每当收到通知后启动MainActivity时(通过单击Details Activity的back按钮(,recyclerview元素是不可单击的。

我尽力解释了这个问题,非常感谢您的帮助!!!

FCM消息显示的通知中包含的PendingIntent可以在DetailsActivity下面描述MainActivity的背景。

TaskStackBuilder stackBuilder = TaskStackBuilder.create(context);
stackBuilder.addNextIntent(new Intent(context, MainActivity.class));
stackBuilder.addNextIntent(new Intent(context, DetailsActivity.class));
PendingIntent notificationIntent = stackBuilder.getPendingIntent(0, PendingIntent.FLAG_UPDATE_CURRENT);

最新更新