我有一个我想阻止旋转的活动,因为我正在启动一个AsyncTask,屏幕旋转使它重新启动。

有没有办法告诉这个活动“即使用户像疯了一样摇晃他的手机也不要旋转屏幕”?


当前回答

如果您正在使用Android开发工具(ADT)和Eclipse 你可以到androidmanifest。xml ->应用选项卡->,然后选择你的活动。最后,选择你喜欢的方向。 您可以从众多选项中选择一个。

其他回答

在你的Manifest文件中,对于每个你想锁定屏幕旋转的Activity添加:如果你想锁定在水平模式:

<activity
        ...
        ...
        android:screenOrientation="landscape">

或者如果你想锁定在垂直模式:

<activity
            ...
            ...
            android:screenOrientation="portrait">

android: screenOrientation =“肖像” 在应用程序标签<application

and

<活动 ... ... android: screenOrientation = "锁定" >

而不是进入AndroidManifest,你可以这样做:

screenOrientation = getResources().getConfiguration().orientation;
getActivity().setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LOCKED);
... AsyncTask

screenOrientation = getResources().getConfiguration().orientation;


@Override
protected void onPostExecute(String things) {
    context.setRequestedOrientation(PlayListFragment.screenOrientation);
    or 
    context.setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_FULL_SENSOR);
}

唯一的缺点是它要求API级别18或更高。所以基本上这是矛的尖端。

防止屏幕旋转只需在清单中添加以下一行。

<activity
        android:name=".YourActivity"
        android:screenOrientation="portrait" />

这对我很有用。

Add

android:screenOrientation="portrait" 

or

 android:screenOrientation="landscape" 

到<activity>元素/s中 拿到载货单,你就完了。