防止Android上的屏幕旋转
我有一个我希望防止旋转的活动,因为我正在启动一个AsyncTask,并且屏幕旋转使其重新启动。
有没有办法告诉这个活动“即使用户像疯了一样摇动手机,不要旋转屏幕?”?
将android:screenOrientation="portrait"
添加到清单或landscape
的<activity>
元素/ s,就完成了。
您可以按照下面的逻辑来防止在AsyncTask
运行时自动旋转屏幕:
getRequestedOrientation()
将您的当前屏幕方向存储在您的活动中。 setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_NOSENSOR)
禁用自动屏幕方向。 AsyncTask
。 AsyncTask
的最后,使用setRequestedOrientation(oldOrientation)
恢复以前的方向状态。 请注意,有几种方法可以访问AsyncTask
Activity
(在UI线程上运行)属性。 你可以实现你的AsyncTask
作为内部类,或者你可以使用消息Handler
程序戳你的Activiy
类。
在你的Manifest文件中,对于你想要锁定屏幕旋转的每个Activity添加:如果你想锁定在水平模式下:
<activity
...
...
android:screenOrientation="landscape">
或者您想要将其锁定在垂直模式下:
<activity
...
...
android:screenOrientation="portrait">
链接地址: http://www.djcxy.com/p/8929.html
上一篇: Prevent screen rotation on Android
下一篇: Dynamically enabling or disabling a widget does not work