0

我在寻求帮助。我在活动中绑定了服务:

Intent i = new Intent(MainActivity.this, X.class);
MainActivity.this.bindService(i, mConnection, Context.BIND_AUTO_CREATE);

此服务旨在将数据从 Camera.PreviewCallback (YCbCr_420_SP (NV21)) 解码为 RGB。对于重量轻的 CPU,我限制了帧速率和相机分辨率。(没有实时预览)。

我面临的问题是 UI 线程超载,导致 MainActivity(动画、电影)上显示内容的速度变慢。所有昂贵的操作都在服务中执行(解码、读取条形码)。

我怎样才能解决这个问题?我认为,我必须创建一些线程,但是如何将他与 Camera.PrviewCallback 连接起来?

谢谢并请指教。

4

1 回答 1

1

我最近解释了如何修改 Activity 以使onPreviewCallback()脱离 UI 线程:Best use of HandlerThread over other similar classes。相同的方法可以应用于服务。

于 2013-10-16T15:19:12.653 回答