android - 当应用程序从通知启动时提供返回导航

android - provide back navigation when app launched from notification

我有一个 android 应用程序,其中 HomeActivity 作为所有其他活动的父级 activity。意思是 - 我总是有一个它的实例,如果你从任何 activity 按下 back 按钮,它将带你到这个 activity.

现在,可以选择从通知启动应用程序。

当用户点击通知时,我开始 RidesActivity(其他活动之一),在这种情况下,如果我按 back,它会关闭应用程序(没有 HomeActivity 的实例)。

我该怎么做才能在后台启动 HomeActivity 的实例,并确保如果用户单击 back,它将转到 HomeActivity?

Android 当你按下后退按钮时回到最后一个 activity,但你的位置没有最后一个 activity,因为你直接启动了 RidesActivity。

要解决此问题,您可以通过通知中的 Intent 而不是 RidesActivity 启动 MainAcivity,并添加一些额外信息以直接启动 RidesActivity。

您的通知代码:

Intent intent = new Intent(context, MainActivity.class);
intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK); //is important to start the activity from a notification
intent.putExtra("startRidesActivity", true);
startActivity(intent);

MainActivity 的 onCreate 方法代码:

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);

    /*
    * Put the following at the end of this method
    */
    Bundle bundle = getIntent().getExtras();
    if(bundle!=null && bundle.containsKey("startRidesActivity")){
        Intent intent = new Intent(this, RidesActivity.class);
        startActivity(intent);
    }
}

就是这样。现在您的 Notification 打开了 MainActivity 并且 MainActivity 直接启动了您的 RidesActivity。如果你点击后退按钮,你应该看到你的 MainActivity 而不是你的主屏幕。