Как восстановить предварительный просмотр камеры из спящего режима?

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

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

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

Есть ли способ принудительно воссоздать вид поверхности, кроме простого воссоздания всего действия?

7
задан inazaruk 29 June 2011 в 10:26
поделиться