Android: breve cambio de orientación inesperado al cambiar de actividad

Quiero establecer la orientación de la pantalla dinámicamente en mi aplicación de Android. Para eso uso

activity.setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT));

y por igual Eso funciona bien hasta ahora, pero ocasionalmente experimento un breve cambio de orientación no deseado al pasar de una actividad a la siguiente. El problema ocurre cuando sostengo el dispositivo de una manera que le permite al sensor establecer la orientación de manera diferente a la elegida programáticamente.

Pude reproducir el problema en la siguiente aplicación simple que básicamente consiste en dos actividades que permiten al usuario cambiar a la otra actividad al presionar un botón. En aras de la simplicidad, establezco la orientación en las actividades siempre al paisaje, pero tenga en cuenta que lo que necesito es elegir la orientación en el tiempo de ejecución, de modo que mover la configuración de orientación al manifiesto no haría por mí.

Cualquier sugerencia sobre cómo evitar este cambio de orientación de pantalla ocasional no deseado sería excelente.

Gracias

martín

public class A_Activity extends Activity {

@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);

    setContentView(R.layout.main_a);

    setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE);

    Button b = (Button) findViewById(R.id.button_a);
    b.setOnClickListener(new OnClickListener() {

        @Override
        public void onClick(View v) {

            startActivity(new Intent(A_Activity.this, B_Activity.class));
        }
    });

}

@Override
protected void onResume() {
    // TODO Auto-generated method stub
    super.onResume();

    setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE);

}
}  

La segunda actividad, B_Activity, se define de la misma manera al iniciar A_Activity al presionar el botón

Los diseños son tan simples como

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical" >

<Button
    android:id="@+id/button_a"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:text="Click A" />

</LinearLayout>

y el manifiesto

<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.example.switchactivitytest"
android:versionCode="1"
android:versionName="1.0" >

<uses-sdk
    android:minSdkVersion="8"
    android:targetSdkVersion="15" />

<application
    android:icon="@drawable/ic_launcher"
    android:label="@string/app_name"
    android:theme="@style/AppTheme" >
    <activity
        android:name=".A_Activity"
        android:configChanges="keyboardHidden|orientation|screenSize"
        android:label="A Activity" >
        <intent-filter>
            <action android:name="android.intent.action.MAIN" />

            <category android:name="android.intent.category.LAUNCHER" />
        </intent-filter>
    </activity>
    <activity
        android:name=".B_Activity"
        android:configChanges="keyboardHidden|orientation|screenSize"
        android:label="B Activity" >
    </activity>
</application>

</manifest>

Respuestas a la pregunta(1)

Su respuesta a la pregunta