【问题标题】:Android Open MainActivity after click back button in Notification ActivityAndroid在Notification Activity中单击返回按钮后打开MainActivity
【发布时间】: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


【解决方案1】:

您在 FCM 消息显示的通知中包含的 PendingIntent 可以描述一个 backstack,您的 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);

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-04-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-07-30
    • 2016-12-10
    相关资源
    最近更新 更多