文章目录
  1. 1. 错误
  2. 2. 原因

错误

在使用NavUtils.navigateUpFromSameTask(this)导航到父Activity时,页面切换的动画是从右往左滑动,这样的动画看起来不像是返回动画,而是打开了一个新的页面的动画。

原因

SDK版本小于16时,NavUtilsImpl的实现是NavUtilsImplBase,其中的navigateUpTo方法是实现是添加了flagIntent.FLAG_ACTIVITY_CLEAR_TOP

关于Intent.FLAG_ACTIVITY_CLEAR_TOP,官方文档中是这样描述的

If the activity being started is already running in the current task, then instead of launching a new
instance of that activity, all of the other activities on top of it are destroyed and this intent is
delivered to the resumed instance of the activity (now on top), through onNewIntent()).

但是实际情况,单单一个Intent.FLAG_ACTIVITY_CLEAR_TOP还是会创建新的实例,在stackoverflow有一个相关的问题

需要Intent.FLAG_ACTIVITY_CLEAR_TOP | Intent.FLAG_ACTIVITY_SINGLE_TOP才会执行onNewIntent

文章目录
  1. 1. 错误
  2. 2. 原因
Fork me on GitHub