我正在制作一个简单的计时器作为Android应用程序的一部分,使用处理程序来调用更新UI的runnable。但是,当用户更改屏幕方向时,应用程序将重新启动。我查看了onSaveInstanceState(),但这对我没有帮助。
我注意到一些视频播放器应用在屏幕方向更改期间继续播放视频。是否有可能同样保持我的活动运行?当用户倾斜手机时,我不希望我的计时器停止运行。
有关如何解决此问题的任何想法? (除了固定屏幕方向)
谢谢!
答案 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()来保存数据,这可能是更好的方法。