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

时间:2015-11-08 09:36:28

标签: android android-activity parent-child android-navigation

我有一个Android应用,它有HomeActivity作为所有其他活动的父活动。意思是 - 我总是有一个实例,如果您从任何活动中按返回按钮,它将带您参加此活动。

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

当用户点击通知时,我会启动RidesActivity(其中一个其他活动),在这种情况下,如果我按返回,它会关闭应用(没有{的实例{1}})。

如何在背景中启动HomeActivity的实例,并确保如果用户点击返回,它会转到HomeActivity

1 个答案:

答案 0 :(得分:2)

当您按下后退按钮时,Android会返回到上一个活动,但在您的位置没有上一个活动,因为您直接启动了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);
    }
}

就是这样。现在,您的通知将打开MainActivity,MainActivity将直接启动您的RidesActivity。如果单击然后单击后退按钮,您应该看到MainActivity而不是主屏幕。