Android Lock Ориентация и двойное создание - PullRequest
1 голос
/ 17 августа 2011

Я хочу, чтобы мое приложение отображалось только в портретной ориентации, поэтому я поместил android:screenOrientation="portrait" в тег Activity в AndroidManifest.xml и поместил setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT); в метод действия onCreate.

Это работает для блокировки ориентации на портрет, однако, когда начинается действие, оно показывается один раз, а затем снова показывает себя, и вы видите что-то вроде вспышки.Я могу подтвердить, что onCreate также вызывается дважды.

Эта вспышка вызывает дальнейшее закрытие силы в моем приложении позже.

Как я могу устранить эту вспышку?

Edit

У меня был экран-заставка, отображаемый до того, как я описал действиеОн запускался дважды, и поэтому дважды выполнял это действие (через намерение).Я исправил эту проблему, проверив, было ли это действие уже отслежено с использованием намерения в классе заставки, и он не выполнял его снова.Исправление было скорее обходным путем, чем исправлением, но я надеюсь, что оно поможет людям.

Ответы [ 2 ]

1 голос
/ 17 августа 2011

не ставьте: "setRequestedOrientation (ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);".Просто пусть AndroidManifest сделает свою работу.То, что вы сделали, это:

  1. Скажите вашему приложению, чтобы оно работало только в портретном режиме
  2. Скажите, чтобы ваша активность находилась в портретном режиме, где бы это ни было или нет (вспышка должна исходить от этого).
  3. Я могу ошибаться.
1 голос
/ 17 августа 2011

Я считаю, что использование атрибута configChanges в Деятельности (в манифесте) должно решить вашу проблему. Документация по атрибутам ConfigChanges

Однако , вы просто решаете другую проблему.То, на что вы действительно должны обратить внимание, это , почему это провоцирует ФК?Нет абсолютно никаких причин для этого, так что вы также должны решить эту проблему.Больше информации в обработка изменений во время выполнения .

Обратите внимание: использование первого подхода приемлемо для решения проблем производительности / UX.

На всякий случай, если вам интересно, почему onCreate вызывается дважды, как только я попал в эту проблему, и я думаю, что это было связано с фиксацией ориентации и созданием другой деятельности, но в другой ориентации.До начала второй деятельности первая деятельность изменилась на ориентацию второй.И помните, что клавиатура - это еще и активность!Я не уверен, если это произойдет по этой причине.

...