防止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