Android:帮助处理屏幕方向更改

时间:2012-02-18 06:34:04

标签: android orientation

我正在制作一个简单的计时器作为Android应用程序的一部分,使用处理程序来调用更新UI的runnable。但是,当用户更改屏幕方向时,应用程序将重新启动。我查看了onSaveInstanceState(),但这对我没有帮助。

我注意到一些视频播放器应用在屏幕方向更改期间继续播放视频。是否有可能同样保持我的活动运行?当用户倾斜手机时,我不希望我的计时器停止运行。

有关如何解决此问题的任何想法? (除了固定屏幕方向)

谢谢!

5 个答案:

答案 0 :(得分:2)

我不确定即使我遇到过这个问题,但我更愿意这样做,请将此信息包含在您的舱单各自的活动存根中。

android:configChanges="orientation|keyboardHidden"

答案 1 :(得分:2)

如果您想修改横向/纵向的方向,请使用以下代码:

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

或者只是想要处理困境,即使方向改变然后试试这个:

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

希望它能解决你的问题。

享受。 :)

答案 2 :(得分:1)

使用此:

android:configChanges="orientation|keyboard"

示例:

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

答案 3 :(得分:0)

您应该为计时器使用后台服务,以便它不会因方向更改而停止。

答案 4 :(得分:0)

您可以覆盖onPause()和onResume()来处理这些事件。 onPause()在方向改变之前(或在其开始时)和onResume rigth之后(或在其最后)触发。 如果您使用此方法,则可以使用SharedPreferences保存数据。

您还可以使用onSaveInstanceState()和onRestoreInstanceState()来保存数据,这可能是更好的方法。

Android activity lifetime

SharedPreferences

InstanceState