Активность «Пауза» при ожидании появления PictureCallback

Я создаю приложение для Android, где мне бы хотелось дождаться появления PictureCallback до того, как будет запущен процесс вызова.

import android.hardware.Camera; private Camera camera private Bitmap picture; camera.takePicture(null, null, new PictureCallback() { @Override public void onPictureTaken(byte[] data, Camera camera) { BitmapFactory.Options options = new BitmapFactory.Options(); options.inSampleSize = 1; picture = BitmapFactory.decodeByteArray(data , 0, data.length, options); } } ... do some other logic with picture 

Я хотел бы, чтобы другая логика была разделена, и поэтому я хотел бы избежать кодирования этого в функции takePicture.

Можно ли это сделать?

Плохая практика блокировать поток пользовательского интерфейса при выполнении каких-либо фоновых работ.

Если вы вызываете встроенную активность камеры, ваша деятельность будет в фоновом режиме. После того, как вы сделали снимок, и активность камеры закроется, к тому времени, как вы вернетесь к своей деятельности, изображение будет сохранено.

Если вы используете свою собственную реализацию Camera тогда вы должны отобразить ProgressDialog и если у вас есть какие-либо фоновые работы, вы должны сделать это в отдельном потоке.

Вы можете реализовать его в двух потоках. Затем сразу после того, как PictureCallback называется вызовом wait () в текущем потоке. Затем, когда PictureCallback завершен, он вызывает notify (), чтобы поток ожидания знал, что он нормально заканчивается. Но вы не хотите блокировать свой основной поток. Вы можете, если хотите / нуждаетесь, но это не очень хорошая идея.

Intereting Posts
Как узнать имя оператора на Android WebView и GridView в ScrollView, просмотр слишком велик, чтобы вписаться в кеш рисования Нужна ли проверка выполнения во время выполнения для записи в путь getExternalFilesDir () в зефире? Как создать TabLayout без viewPager? Как определить направление только с показаниями GPS и отображать их на 360 градусов? Добавлено facebook SDK теперь не может возобновить действие силы закрыть Как изменить настраиваемую панель заголовка окна и ее значок для нескольких действий Android как получить фотогалерею телефонов? Несколько видеофайлов одновременно воспроизводятся на Android Фоновый рисунок кнопки (форма) не будет отображаться, если API приложения не равен 20+ (Android L) Butterknife не находит взгляды из модуля Android Library Обработчик в Android Подписывать ящик навигации в наблюдаемый Как получить все имена таблиц в базе данных android sqlite? Где находится предварительный просмотр макета Android Studio?