gpt4 book ai didi

Android 在通知 Activity 中单击后退按钮后打开 MainActivity

转载 作者:行者123 更新时间:2023-11-29 23:27:41 25 4
gpt4 key购买 nike

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

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

下面是我在 Details Activity 中处理后退按钮的代码 fragment 。

@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 中的后退按钮后,启动详细信息 Activity 。

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

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

最佳答案

您在 FCM 消息显示的通知中包含的 PendingIntent 可以描述一个后台堆栈,其中 MainActivity 在 DetailsActivity 下方。

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);

关于Android 在通知 Activity 中单击后退按钮后打开 MainActivity,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53246333/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com