Android 启动器意图的行为类似于后退按钮

Android 启动器意图的行为类似于后退按钮,android,android-actionbar,Android,Android Actionbar,当我解析upIntent时,我有以下逻辑。不幸的是,调用此代码(通过单击home按钮)会使其行为类似于按back press if (parentIntent == null) { parentIntent = activity.getPackageManager().getLaunchIntentForPackage(activity.getPackageName()); } NavUtils.navigateUpTo(activity, parent

当我解析up
Intent
时,我有以下逻辑。不幸的是,调用此代码(通过单击home按钮)会使其行为类似于按back press

    if (parentIntent == null) {
        parentIntent = activity.getPackageManager().getLaunchIntentForPackage(activity.getPackageName());
    }

    NavUtils.navigateUpTo(activity, parentIntent);
但以下代码执行此任务:

    if (parentIntent == null) {
        activity.startActivity(
                activity.getPackageManager()
                        .getLaunchIntentForPackage(
                                activity.getPackageName())
                        .addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP));
        activity.finish();
    } else {
        NavUtils.navigateUpTo(activity, parentIntent);
    }

有人知道为什么NavUtils会这样吗?

引用文档:

NavUtils.navigateUpTo(Activity sourceActivity, Intent upIntent);
从sourceActivity导航到upIntent指定的活动,完成流程中的sourceActivity


因此,是的,NavUtils.navigateUpTo的行为类似于按后退按钮,如果您正在从“主页”按钮单击侦听器调用第一段代码,您将返回到上一个活动。

仍然来自文档:“从与目标相同的任务中执行向上导航时,应使用此方法。如果向上导航在某些情况下应该跨任务,请参阅shouldUpRecreateTask(Activity,Intent)。”。那么parentIntent可能属于不同的任务?