簡體   English   中英

Android中Tab切換時ZXing二維碼問題

[英]ZXing QR code issue during Tab Switching in Android

我對 Tabs 中的 ZXing QR 碼有疑問。 我有 3 個片段,其中一個實現了 ZXing QR,我正在替換選項卡切換上的片段。我的片段類中有以下代碼。 主要問題是當我順利切換標簽時一切正常。 但是當我一次又一次快速切換選項卡時,CameraView 變黑,應用程序的每個線程和 AsychTask 都停止工作。這個問題正在破壞我的整個應用程序。

這是 Fragment 的 OnResume 方法的代碼。 ScanningThread 是一個用 Thread 擴展的類,scanningView 是一個自定義的 CameraView 類。

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

這是 onPause 方法的代碼。

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

這是我的 CameraView 類的 setPreviewCallBack 方法:

  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));
              }
            }
          });
        }
      }

我通過在線程處理時禁用選項卡解決了類似的問題。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM