2011-02-08 5 views
0

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

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

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

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

У кого-нибудь есть идея, как отладить этот «слепой» без отчета о сбоях?

+0

эй какое решение? пожалуйста, напишите ответьте на себя, если вы нашли .. –

ответ

0

Что вы видите в манифесте ваших конфигурационных изменений?

Убедитесь, что вы правильно обрабатываетеConfigurationChanged.

Изменения ориентации являются причиной многих подобных проблем.

+0

Я не допускаю изменений ориентации, его привязанность к пейзажу. – Kevin

0

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

Этот ответ помог много с решением programming with thread strategy

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

 while (run) { 
      while (paused) { 
       try { 
        Thread.sleep(200); 
       } catch (InterruptedException e) { } 
      } 

Я просто установить паузу истина о методе OnStop().

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