Перезапуск активности при ротации Android - PullRequest
1307 голосов
/ 19 января 2009

В моем приложении для Android, когда я поворачиваю устройство (выдвигаю клавиатуру), мой Activity перезапускается (вызывается onCreate). Теперь, вероятно, так и должно быть, но я делаю много начальных настроек в методе onCreate, поэтому мне нужно либо:

  1. Поместите все начальные настройки в другую функцию, чтобы они не терялись при повороте устройства или
  2. Сделайте так, чтобы onCreate больше не вызывался, а раскладка просто настраивалась или
  3. Ограничьте приложение только портретом, чтобы onCreate не вызывался.

Ответы [ 31 ]

0 голосов
/ 06 мая 2014

Вы можете заблокировать текущую ориентацию экрана, используя этот код ...

int currentOrientation =context.getResources().getConfiguration().orientation;
        if (currentOrientation == Configuration.ORIENTATION_PORTRAIT) {
            ((Activity) context).setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);
        } else {
            ((Activity) context). setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE);
        }
...