Нужно кодировать при повороте устройства? - PullRequest
2 голосов
/ 02 февраля 2010

Я получаю сообщение об ошибке при повороте устройства (это был HTC с Verizon):

The application My App (process com.mycompany.android) has
stopped unexpectadly. Please try again.

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

Это правильно?

Как это сделать? Что здесь не так?

Редактировать: можно ли тестировать на эмуляторе?

Заранее спасибо.

Ответы [ 3 ]

2 голосов
/ 02 февраля 2010

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

1 голос
/ 02 февраля 2010

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

Функция Activity onRetainNonConfigurationInstance () позволяет сохранять расширенное состояние от старого до нового экземпляра действия, от загруженных растровых изображений до сетевых подключений и равномерно активных потоков.

После реализации этого метода результат можно использовать в onCreate () или onStart () с функцией getLastNonConfigurationInstance () .

1 голос
/ 02 февраля 2010

По умолчанию действия Android отключаются и перезапускаются при изменении конфигурации. Самый простой способ обойти это - добавить android: configChanges в манифест приложения. Это скажет Android, что вы будете обрабатывать перечисленные изменения конфигурации самостоятельно. Например

<activity
    android:name=".YourActivity"
    android:label="YourActivity"
    android:configChanges="orientation|keyboardHidden" />

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

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