【发布时间】:2018-11-11 06:15:03
【问题描述】:
我正在开发一个应用程序,它将在 MainActivity 的 Recycler 视图中显示卡片视图列表。单击卡片视图时,它将启动不同的活动。流量是 SplashScreenActivity -> MainActivity(Recycler View) -> DetailsActivity 如果我们通过单击应用程序图标启动应用程序,则流程运行良好。
作为此应用程序的一部分,我正在向该应用程序发送 FCM 通知。每当收到通知时,将启动 DetailsActivity,在此期间 MainActivity 不会在堆栈中。每当按下 Details Activity 的后退按钮时,我都会盯着 MainActivity。如果没有从 Notification 调用 DetailsActivity,那么我不会再次调用 MainActivity。
下面是我在Details Activity中处理后退按钮的代码sn-p。
@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 的返回按钮),recyclerview 元素不可点击。
我已尽力解释该问题,非常感谢您的帮助!!!
【问题讨论】:
-
第一个问题你可以添加一个finish();在您的 if 条件下开始 mainactivity 之后。它将杀死被背压的 detailsActivity。对于第二个问题,我们可能需要有关代码或 xml 文件的更多详细信息。
-
添加了 finish() 方法,一旦我在 MainActivity 中按下后退按钮,应用程序就会在应用程序托盘中可用(您可以在其中找到正在运行/最小化的应用程序列表)一旦我单击它正在启动的应用程序详细信息活动。
-
对于第二个问题,我在 MainActivity 顶部有一个片段。该片段持有回收站视图
标签: android