简体   繁体   中英

ZXing QR code issue during Tab Switching in Android

I have an issue on ZXing QR code inside Tabs. I have 3 fragments one of which having ZXing QR implemented and i am replacing fragments on tabs switching.I have following code in my fragment class. The main issue is when i switched tabs smoothly everything working fine. But when i switched tabs quickly again and again then CameraView became black and every Thread and AsychTask of Application stopped working .This issue is destroying my whole application.

Here is code of Fragment's OnResume method. ScanningThread is a class extended with Thread and scannerView is a custom CameraView class.

    ScanningThread scanningThread = new ScanningThread();
    scanningThread.setScanListener(scanListener);
    scannerView.onResume();
    scannerView.setPreviewCallback(scanningThread);
    scanningThread.start();

Here is code of onPause method.

        this.scannerView.onPause();
        this.scanningThread.stopScanning();

Here is my setPreviewCallBack method of CameraView class:

  public void setPreviewCallback(final @NonNull PreviewCallback previewCallback) {
    enqueueTask(new PostInitializationTask<Void>() {
      @Override
      protected void onPostMain(Void avoid) {
        if (camera.isPresent()) {
          camera.get().setPreviewCallback(new Camera.PreviewCallback() {
            @Override
            public void onPreviewFrame(byte[] data, Camera camera) {
              if (!CameraView.this.camera.isPresent()) {
                return;
              }

              final int  rotation    = getCameraPictureOrientation();
              final Size previewSize = camera.getParameters().getPreviewSize();
              if (data != null) {
                previewCallback.onPreviewFrame(new PreviewFrame(data, previewSize.width, previewSize.height, rotation));
              }
            }
          });
        }
      }

我通过在线程处理时禁用选项卡解决了类似的问题。

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM