退出 OCR activity 特定文本检测

Exiting from OCR activity on specific text detection

在这个使用 com.google.android.gms:play-services-visionsample Android OCR application 中,有一个 OcrDetectorProcessor.receiveDetections() 方法被重复调用。在这种方法中,当用户将相机对准环境中的事物时,我们可以访问检测到的任何文本。

如果用户按下 back 按钮,进程结束,但是 我想在 receiveDetections() 方法中出现特定条件时结束进程

我尝试调用 mParentActivity.onBackPressed(),但是 super.onBackPressed() 引发了异常:

OpenCameraSource: Exception thrown from receiver. java.lang.IllegalStateException: Must be called from main thread of fragment host

所以虽然异常被捕获并且app继续运行,但是调用onBackPressed()并不是正确的做法。 以编程方式退出 receiveDetections() 的正确方法是什么?

而不是:

              mParentActivity.onBackPressed();

使用:

              mParentActivity.runOnUiThread(new Runnable() {
                    public void run() {
                        mParentActivity.onBackPressed();
                    }
              });