我有一个使用全屏的活动SurfaceHolder
,打开相机进行预览(基于zxing
代码)。
开始这个活动结果很慢(1.x 秒),我认为是因为相机管理器的繁重工作。我正在使用onResume
方法;将代码移动到 中是个好主意AsyncTask
吗?
我想立即渲染布局,然后等待相机(我认为这是更好的用户体验)。我该如何处理?
活动
private class CameraTask extends AsyncTask<Void, Void, Void> {
SurfaceHolder.Callback callback;
public CameraTask(SurfaceHolder.Callback callback) {
this.callback = callback;
}
protected void doInBackground() {
cameraManager = new CameraManager(getApplication());
viewfinderView = (ViewFinderView) findViewById(R.id.viewfinder_view);
viewfinderView.setCameraManager(cameraManager);
SurfaceView surfaceView = (SurfaceView) findViewById(R.id.preview_view);
SurfaceHolder surfaceHolder = surfaceView.getHolder();
if (hasSurface) {
initCamera(surfaceHolder);
} else {
surfaceHolder.addCallback(callback);
}
}
}
此代码没有错误,但布局渲染仍在等待相机打开。我正在调用 in 的 execute 方法AsyncTask
,onResume
它的位置是否正确?