ожидание данных с камеры основным потоком

Ответить
Idol
Сообщения: 55
Зарегистрирован: 26 июн 2013, 04:33

ожидание данных с камеры основным потоком

Сообщение Idol » 26 фев 2014, 01:23

Хочу реализовать следующую логику:
1. сделать фото
2. callback возвращает фото
3. обработка данных (фото)

Это возможно сделать если 3 пункт реализован в takePicture функции, но у меня Camera class выделен и не очень хочется запихивать основную логику (пункт 3) в "абстрактный" класс.

Разделение по потокам не помогает (по крайней мере у меня), Callback всегда работает с основным потоком.

Может кто сталкивался с подобным, подскажите в какую сторону "грести"?
Или это в принципе не возможно?

PS.
подобные темы на английском:
http://stackoverflow.com/questions/1188 ... k-to-occur
http://stackoverflow.com/questions/7934 ... ain-thread

Аватара пользователя
altwin
Сообщения: 1951
Зарегистрирован: 13 ноя 2013, 14:46

Re: ожидание данных с камеры основным потоком

Сообщение altwin » 13 мар 2014, 18:01

никакой обработки в Main Thread быть не должно. Callback возвращает в main поток и если нужно что то изменить/обработать запускайте это опять таки в background потоке и возвращайте результат в main.
Изображение

Idol
Сообщения: 55
Зарегистрирован: 26 июн 2013, 04:33

Re: ожидание данных с камеры основным потоком

Сообщение Idol » 14 мар 2014, 10:39

altwin писал(а):никакой обработки в Main Thread быть не должно. Callback возвращает в main поток и если нужно что то изменить/обработать запускайте это опять таки в background потоке и возвращайте результат в main.
Ну так Вы мне и советуете запихать основную логику в класс, который для этого в принципе не предназначен. У меня так сейчас и сделано, но выглядит это очень коряво и половину функций пришлось сделать статичными.

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

Или у Вас есть оригинальная идея, как вернуть данный с камеры в основной класс? Поделитесь.

Ответить