2012-12-13 38 views
3

我有一個非常奇怪的問題。它必須處理overridePendingTransition只在1個活動轉換(按下後退按鈕)時才運行正常,並且只在運行Honeycomb的Galaxy Tab 10.1上運行。爲什麼我的overridePendingTransition不能在一個活動上工作

這是情況。我有一個BaseActivity類的擴展活動。我使用它來從android默認值中添加一些轉換更改。 我重寫,像這樣結束()函數:

@Override 
    public void finish() 
    { 
     super.finish(); 
     Log.i(StaticValues.TAG, "Calling finish in ActivityBase"); 
     overridePendingTransition(getAnimationId("slide_in_right") ,getAnimationId("slide_out_right")); 
    } 

我必須爲我使用統一使用getAnimationId不能使用R.anim.slide_in_right /左

也getAnimationId是這個函數的任何那可能想知道:

protected int getAnimationId(String animName) 
{ 
    if(mResources == null) 
    { 
     mResources = this.getResources(); 
    } 

    return mResources.getIdentifier(animName, "anim", mPackage); 
} 

現在來了怪異的部分。當從我的nexus S手機的主Activity上調用基於ActivityBase的任何活動時,這很好用。在我的Galaxy Tab 10.1上調用兩個活動(只是信息活動,指向網頁的鏈接等)時,它也很好用,但在調用第三個活動(一個錄音機)時,轉換是可以的(一張幻燈片),但當退出時通過調用完成或返回按鈕)它看起來像方向改變爲橫向(標準主屏幕,因爲這是一款平板電腦),然後將主要活動加載回原來的樣子。

因爲我給你這個歷史。有人能告訴我爲什麼這可能只發生在那一個活動上,而且只發生在平板電腦上。

public void finish() 
{ 
    removeUnsavedRecording(); 
    super.finish(); 

} 

以上是我在我的錄音機活動中被覆蓋的完成功能。

回答

0

好的,我修復了這個錯誤,我修復了一個奇怪的方法。我的AudioRecorderActivity在測試階段是一個啓動類。出於某種原因,設備爲此緩存了退出動畫。 (奇怪的)。所以我通過將我的ActivityBase finish()方法的重寫更改爲另外兩個動畫(其工作)然後將其更改回來解決了問題。

所以我唯一的選擇是相信應用程序以某種方式緩存了此活動的默認動畫(從它是啓動器活動時)。沒有看到任何其他解釋。

相關問題