Как отключить изменение ориентации в MapActivity - PullRequest
0 голосов
/ 11 марта 2012

Вот эта вещь.Мне нужно проделать длинный процесс после запуска моей MapActivity, у меня есть много GeoPoints, которые нужно добавить на карту.Все работает нормально, но я хочу отобразить ProgressDialog, в то время как мой AsyncTask выполняет работу в фоновом режиме, поэтому пользователь фактически знает, что что-то происходит в эти несколько секунд.Опять же, все работает просто отлично, пока я не поверну телефон, пока ProgressDialog жив.Нет проблем, я думал, я уже имел дело с этим в другом действии, поэтому я просто передам действие в AsyncTask, который затем вызовет следующую строку, прежде чем показывать диалог, поэтому контекст, в котором я показываю диалог, не будетпреждевременно уничтожаться, создавая силу закрытия:

activity.setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_NOSENSOR);

... и я просто вызову эту строку после закрытия моего диалога:

activity.setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_SENSOR);

... чтобы пользователь могПоверните его телефон снова.Здесь возникает моя проблема: он просто не будет работать в MapActivity, он создаст исключение NullPointerException в строке NOSENSOR.Есть ли другой способ временно отключить вращение в MapActivities?Я мог бы просто установить все это на «портрет», но это не то, что я хочу сделать, если бы я мог сделать это лучше.

ура

1 Ответ

0 голосов
/ 11 марта 2012

Для обработки конфигурации (например, изменения ориентации) самостоятельно. Добавьте это в свой манифест

android:configChanges="orientation|keyboardHidden"

в теге активности.

Затем вы можете обработать эти изменения конфигурации, применив следующий метод к вашей деятельности

@Override
public void onConfigurationChanged(Configuration config){
    super.onConfigurationChanged(config);

}
...