2012-02-18 84 views
2

我正在使用處理程序調用可更新UI的runnable來製作一個簡單計時器,作爲Android應用程序的一部分。但是,當用戶更改屏幕方向時,應用程序將重新啓動。我看着onSaveInstanceState(),但這不會幫助我。Android:幫助處理屏幕方向更改

我注意到一些視頻播放器應用程序在屏幕方向更改期間繼續播放視頻。是否有可能同樣保持我的活動運行?我不希望我的計時器在用戶傾斜手機時停止運行。

有關如何解決此問題的任何想法? (除了固定屏幕方向)

謝謝!

回答

0

您應該爲定時器使用後臺服務,以便在定位更改時不會停止。

1

使用此:

android:configChanges="orientation|keyboard" 

例子:

<activity android:name=".HomeActivity" android:configChanges="orientation|keyboard" /> 
2

林不知道連我都面臨着這個問題,但我更喜歡這樣做,這包括在你的艙單各自的活動存根。

android:configChanges="orientation|keyboardHidden" 
2

如果你想解決您的方向爲橫向/縱向然後使用此代碼:

<activity android:name=".MainMenuActivity" android:screenOrientation="landscape" android:configChanges="keyboard|keyboardHidden|orientation" /> 

,或者只是想處理situstion即使方向變化那就試試這個:

<activity android:name=".MainMenuActivity" android:configChanges="keyboard|keyboardHidden|orientation" /> 

希望它能解決您的問題。

享受。 :)

0

您可以重寫onPause()和onResume()來處理這些事件。 onPause()在方向改變之前(或者在其開始時)和onResume之後(或者在其最後)觸發。 如果您使用這種方法,您可以使用SharedPreferences保存您的數據。

您也可以使用onSaveInstanceState()和onRestoreInstanceState()來保存數據,這可能是更好的方法。

Android activity lifetime

SharedPreferences

InstanceState