退出 OCR activity 特定文本检测
Exiting from OCR activity on specific text detection
在这个使用 com.google.android.gms:play-services-vision
的 sample 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();
}
});
在这个使用 com.google.android.gms:play-services-vision
的 sample 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(); } });