Ориентация экрана застревает на эмуляторе - PullRequest
1 голос
/ 20 января 2011

У меня есть видеоплеер, реализованный в упражнении. На этом этапе я заставляю его создавать ландшафт, настраивая манифест, подобный этому

<activity android:name=".activity.VideoPlayerActivity"
              android:launchMode="singleTask"
              android:configChanges="orientation"
              android:screenOrientation="landscape"/>

и переопределение onConfigurationChanged с пустой реализацией, чтобы действие не было перезапущено.

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

Так кто-нибудь видел эту проблему раньше? Это просто эмулятор? Может быть, есть лучший способ сделать это?

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

Ответы [ 2 ]

1 голос
/ 21 января 2011

Я думаю, что это эмулятор;Я уверен, что я видел подобное, но никогда на любом телефоне.

Кроме того, ваш Activity может быть перезапущен с помощью различных configChanges, в том числе аппаратная клавиатура скольжения в / из, или изменение языкового стандарта, илидневной / ночной режим?

Лучше всего позволить пользователю выбирать и отслеживать положение, как вы говорите.
Может быть, вы даже можете удерживать MediaPlayer (или что-то еще), которое используете через onRetainNonConfigurationInstance().

0 голосов
/ 21 января 2011

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

Ctrl + f2 + f12

...