получить черный экран при изменении активности - PullRequest
3 голосов
/ 03 апреля 2012

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

Я пробовал Transculent.Theme также, но это не сработало. AsyncTask также не дал мне желаемого результата

Теперь мне показалось, что я показываю некоторую анимацию исчезновения активности или что-то, что может скрывать мое поведение на черном экране?

нужна помощь в решении? .... спасибо

Ответы [ 5 ]

5 голосов
/ 03 апреля 2012

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

Подумайте о том, чтобы переместить код, который загружает все данные «Деятельности» (это игра, поэтому я предполагаю уровень и графику), в отдельный поток, а затем сообщить PlayActivity, когда данные будут готовы к использованию.

0 голосов
/ 31 октября 2015

Хотя вполне возможно, что слишком большая активность в основном потоке будет делать это, по моему опыту, наиболее распространенной / заметной причиной является вызов метода finish () сразу после startActivity () при переходе. Я не говорю, что делать это неправильно, но если вы хотите избавиться от черного экрана, вам, возможно, придется попробовать другой подход, например, использовать noHistory .

0 голосов
/ 25 апреля 2012

Это очень простая ошибка: просто укажите в свой файл манифеста свойство своей деятельности: android: theme = "@ android: style / ... - и сделайте его прозрачным.

0 голосов
/ 04 апреля 2012

Если в onCreate у вас большой код, связанный с пользовательским интерфейсом, просто попробуйте сделать это вне onCreate, создав некоторую функцию IntializeUI (), и, возможно, попытайтесь разделить ее на модульную или использовать тему Transculent для вашей деятельности ...

0 голосов
/ 03 апреля 2012

Всякий раз, когда происходит такое, не забывайте отлаживать, когда вызывается новая активность.

При создании любой игры попробуйте создавать разделы из разных модулей. Так легко найти вашу проблему.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...