2014-10-04 108 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

相關問題