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