等待PictureCallback发生时"暂停"活动

Gil*_*ain 5 android callback android-camera

我正在构建一个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
Run Code Online (Sandbox Code Playgroud)

我想保持其他逻辑分离,因此我想避免在takePicture函数中编码.

有可能做到这一点吗?

Ada*_*nos 0

在执行任何后台工作时阻塞 UI 线程是不好的做法。

如果您调用内置的相机活动,您的活动将在后台运行。拍摄照片且相机活动关闭后,当您返回活动时,照片将已保存。

如果您使用自己的Camera实现,那么您应该显示 a ProgressDialog,如果您有任何后台工作要做,您应该在单独的线程中完成。