#android
#Android
Вопрос:
Я использую образец CamneraDemo как часть проекта Android. Я поместил код CameraDemo внутрь AsyncTask, и оттуда он создает новый предварительный просмотр. Код для класса предварительного просмотра создает SurfaceView, и поскольку я переместил код CameraDemo в AsyncTask, я получаю сообщение «не удается создать обработчик внутри потока, который не вызывал looper.prepare()», я погуглил по этому поводу и видел предложения повторно использовать runnable, но не могу понять, как это сделать в ситуации AsyncTask.
Комментарии:
1. Опубликуйте некоторый пример кода и logcat.
Ответ №1:
Где вы создаете SurfaceView
? Вы должны создавать представления в потоке пользовательского интерфейса, что означает, что ваш SurfaceView
код создания должен быть в onPostExecute или одном из других AsyncTask
методов, которые выполняются в потоке пользовательского интерфейса.