2011-01-12 6 views
2

Я показываю заставку около 3 секунд, прежде чем вызывается моя первая активность. Splash Screen также является Activity, через 3 секунды он заканчивает() es и запускает FirstActivity. Также я установил поворот экрана всплывающей активности в портретный вид.Ошибка экрана всплеска Android

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

Есть ли какой-либо способ/фрагмент кода, который мог бы помочь мне открыть мою первую активность только один раз, несмотря на то, что на экране отображается активность экрана Splash Screen Activity. ? Спасибо за помощь :)

ответ

5

Это не ошибка. Когда вы меняете ориентацию, текущая активность создается снова, поэтому ваша SplashActivity вызывается дважды.

Я написал сообщение в блоге об изменении ориентации ориентации вручную; http://c0deattack.wordpress.com/2010/12/25/dealing-with-screen-orientation-changes-manually/

+0

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

+0

«Я добавил андроид ScreenRotation в свой файл манифеста» .... Что это значит? – C0deAttack

+0

Спасибо, что помогли, по-видимому, в его ошибке в эмуляторе. реальное устройство отлично работает. Все, что я добавил, было андроид: screenOrientation = «портрет» на моем активном экране Splash Screen, чтобы остановить его от вращения. Он работает на устройстве. Экран не вращается и на эмуляторе, но он вызывает WithCreate again two times :(Багги-эмулятор ... –

3

У меня также была эта «ошибка». Здесь он описывает, как я его решил: Activity reloads when orientation changes in Android

+0

Ен он делает то же самое , во время отображения экрана всплеска, если вы поворачиваете устройство, его FirstAppActivity вызывается дважды. –

+0

Спасибо за помощь, видимо, ее ошибку в эмуляторе. Когда я тестировал на реальном устройстве, он отлично работает. Все, что я добавил, было андроид: screenOrientation = "портрет" на моем экране Splash Screen, чтобы остановить его от вращения. Он работает на устройстве. Экран не вращается и на эмуляторе, но он снова вызываетСоздание два раза :(Багги-эмулятор ... –

1

Я думаю, что ваша нить заставки снова позвонит еще раз.

поэтому просто установите флаг для 2-х проверочных экранов, повернутых или нет. если да, то не вызывайте эту нить еще раз. например.

boolean urScreenRotationFlag = false;

если (! UrScreenRotationFlag) { ур код Всплеск нить

}

и при повороте экрана установить этот флаг 2 верно.

Thankks.

+0

Спасибо, что помогли, по-видимому, это ошибка в эмуляторе. Когда я тестировал на реальном устройстве, он отлично работает. Все, что я добавил, было андроид: screenOrientation = "портрет" на моем экране Splash Screen, чтобы остановить его от вращения. Он работает на устройстве. Экран не вращается и на эмуляторе, но он снова вызываетСоздание два раза :(Багги-эмулятор ... –

0

вы можете решить ее путем добавления этого атрибута XML в Splash активности в Mainfest

android:configChanges="orientation|keyboardHidden|screenSize"

это предотвратить вашу деятельность с Пересоздайте при ориентации произошла

Смежные вопросы