0

我有一个主要活动和一个子活动。我在子活动中使用向上按钮返回主要活动。在我的活动中,我有一些动画,当我从子活动返回到它时,我不想再次启动它。所以这是儿童活动中的家庭行动:

@Override
    public boolean onOptionsItemSelected(MenuItem item) {

        switch (item.getItemId()) {
        case android.R.id.home:
            Intent intent = NavUtils.getParentActivityIntent(this);
            intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
            NavUtils.navigateUpTo(this, intent);
            return true;
        }
        return super.onOptionsItemSelected(item);
    }

这是明显的:

 <activity
      android:name=".ChildActivity"
      android:label="@string/app_name"
      android:parentActivityName=".MainActivity" >

      <!-- Parent activity meta-data to support 4.0 and lower -->
      <meta-data
          android:name="android.support.PARENT_ACTIVITY"
          android:value=".MainActivity" />
</activity>

当我在带有android 4.4.4的LG nexus 5上运行它时,它工作正常,但在带有android 4.0.4的Xperia arc中,它每次返回主要活动时都会启动动画。解决方案是什么?

更新:

我可以使用以下方法之一实现我想要的:

1-finish()按下向上时只需调用。

2-Intent.FLAG_ACTIVITY_CLEAR_TOP | Intent.FLAG_ACTIVITY_SINGLE_TOP在向意图添加标志时使用。

但我想知道是什么导致了 android 4.4.4 和 4.0.4 中的这种行为差异。

提前致谢!

4

1 回答 1

0

根据提供向上导航,您可以使用NavUtils.navigateUpFromSameTask(this);而不是Intent自己构建,因为这将正确处理标志以返回父活动。

于 2014-10-04T15:30:34.473 回答