Асинхронная задача с CameraDemo и предварительным просмотром выдает ошибку зацикливания

#android

#Android

Вопрос:

Я использую образец CamneraDemo как часть проекта Android. Я поместил код CameraDemo внутрь AsyncTask, и оттуда он создает новый предварительный просмотр. Код для класса предварительного просмотра создает SurfaceView, и поскольку я переместил код CameraDemo в AsyncTask, я получаю сообщение «не удается создать обработчик внутри потока, который не вызывал looper.prepare()», я погуглил по этому поводу и видел предложения повторно использовать runnable, но не могу понять, как это сделать в ситуации AsyncTask.

Комментарии:

1. Опубликуйте некоторый пример кода и logcat.

Ответ №1:

Где вы создаете SurfaceView ? Вы должны создавать представления в потоке пользовательского интерфейса, что означает, что ваш SurfaceView код создания должен быть в onPostExecute или одном из других AsyncTask методов, которые выполняются в потоке пользовательского интерфейса.