Выход из действия OCR при обнаружении определенного текста

В этом пример приложения OCR для Android, который использует com.google.android.gms:play-services-vision, есть метод OcrDetectorProcessor.receiveDetections(), который вызывается неоднократно. В этом методе, пока пользователь наводит камеру на предметы в окружающей среде, у нас есть доступ к любому обнаруженному тексту.

Если пользователь нажимает кнопку back, процесс завершается, но я хотел бы, чтобы процесс завершался, когда в методе receiveDetections() возникает определенное условие.

Я попытался вызвать mParentActivity.onBackPressed(), но это вызвало исключение из super.onBackPressed():

OpenCameraSource: Исключение выдано приемником. java.lang.IllegalStateException: должен вызываться из основного потока хоста фрагмента

Таким образом, хотя исключение перехватывается и приложение продолжает работать, вызов onBackPressed() не является правильным подходом. Как правильно программно отказаться от receiveDetections()?


person Dale    schedule 11.12.2018    source источник


Ответы (1)


Вместо:

              mParentActivity.onBackPressed();

Использовать:

              mParentActivity.runOnUiThread(new Runnable() {
                    public void run() {
                        mParentActivity.onBackPressed();
                    }
              });
person Dale    schedule 11.12.2018