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