最近项目中需要用到zxing扫描二维码,还要求能够连续扫描.经过自己一步步研究终于解决了问题.需要重新添加回调.但是解决后又出现了新的问题,连续扫码之间没有时间间隔,太快,可以使用AsyncTask来解决这个问题.
protected void goScanner() { new MyAsyncTask().execute(); } class MyAsyncTask extends AsyncTask<Void, Void, Void> { @Override protected Void doInBackground(Void... arg0) { SystemClock.sleep(3000);//延时3秒 防止连续扫码速度过快的问题 return null; } @Override protected void onPostExecute(Void result) { super.onPostExecute(result); if (handler != null) { handler.quitSynchronously(); handler = null; } if (hasSurface) { initCamera(surfaceHolder); } else { surfaceHolder.addCallback(CodeScanActivity.this);//重新添加callback surfaceHolder.setType(SurfaceHolder.SURFACE_TYPE_PUSH_BUFFERS); } } }