2014-10-04 109 views
0

我有一个主要活动和一个儿童活动。我正在使用儿童活动中的按钮来返回主要活动。在我的活动中,我有一些动画,当我返回它形成儿童活动时,我不想再次启动它。因此,这里是家庭行动的子活动:向上按钮在Android 4.0.4中无法正常工作

@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> 

当我LG的Nexus运行5的Android 4.4.4它工作正常,但在Xperia arc with android 4.0.4它每次回到主要活动时开始动画。什么是解决方案?

更新:

我能实现我想用什么样的下列方式之一:

1-按下了时只是打电话finish()

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

但我想知道在Android 4.4.4和4.0.4中导致行为差异的原因。

提前致谢!

+0

请将您的意见添加到您的问题,这种方式当人们阅读它可以很容易地了解情况:-) – mmlooloo 2014-10-04 10:09:30

+0

@ mmlooloo谢谢。我做到了:-) – 2014-10-04 10:15:17

回答

0

Providing Up Navigation,您可以使用NavUtils.navigateUpFromSameTask(this);而不是自己构建一个Intent,因为这将正确处理标志以返回到父活动。

+0

当我返回到主要活动时,它使两个设备都开始动画。 – 2014-10-04 17:37:35

+1

Right,Up和Back(由'finish()'完成的操作)是不同的操作:back简单地关闭当前屏幕并转到用户来自的位置,而Up则涉及创建语义一致的父状态。如果您的父级活动的清单条目中没有“singleTop”,那么您会看到它完全重新创建了您看到的父级活动和动画。 – ianhanniballake 2014-10-04 18:22:02

相关问题