Ошибка Экрана-Заставки Android


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

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

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

4 2

4 ответа:

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

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

У меня тоже был этот "баг". Здесь описано, как я решил эту задачу: Перезагрузка активности при изменении ориентации в Android

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

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

Boolean urScreenRotationFlag=false;

Если(!urScreenRotationFlag) { ur splash thread code

}

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

Спасибо.

Вы можете решить ее, добавив этот атрибут xml к действию Splash в Mainfest

android:configChanges="orientation|keyboardHidden|screenSize"

Это предотвращает вашу активность от повторного создания, когда ориентация произошла