2011-09-11 50 views
0

目前,我在我所有的活動,使用此:什麼是啓動動畫onRestart()的正確方法?

@Override 
public void onRestart(){ 
    onStart(); 
    onResume(); 
    runFadeInAnimation(); 
} 

它「作品」,但我無能,如果這是要我擰過的未來。我不確定它是否通過僥倖運行,或者如果這是應該如何完成的。我試圖通過運行它:

@Override 
public void onRestart(){ 
    super.onRestart(); 
    runFadeInAnimation(); 
} 

但我can't--因爲我所有的活動致以主要活動,如果我通過超跑它試圖打電話給我的主要活動onRestart(),它會崩潰。 (我也希望我的主要淡入,所​​以我也在那裏運行一個動畫)

我該如何處理這種優雅而不會在不知不覺中導致錯誤?

回答

1

看看活動生命週期的位置:http://developer.android.com/reference/android/app/Activity.html

你在做什麼是什麼是應該對一個活動重新啓動自動發生實際上是多餘的。

這聽起來像你有一些可能的設計問題,你如何定義你的主要活動以及如何擴展它。如果我可以提出建議,我會說如果你的活動中有一些活動在你的所有活動中都很常見,那麼把這些東西放在你可以擴展的「父母」活動中。現在定義你的「主要」活動的方式似乎有其中的細節,不適用於其他活動。所以,一旦你建立了你的「父」活動課程,擴展它來創建「主」活動,並在那裏放置「淡入」邏輯。

最終,您應該可以調用super.onRestart,而不會產生任何有害結果。

+0

我記得我的主要擴展,所以我可以讓我的子菜單(菜單按鈕選項)出現在我的所有活動中。我想我可以做一個更高級別的活動,並有我的主要延伸,所有其他活動延伸,而不是我的主要? (如果我明白你在說什麼?) –

+0

是的 - 這就是我所說的。這會更有意義。 – SBerg413

+0

謝謝,我可以做到這一點。 :) –

相關問題