gpt4 book ai didi

java - Camera2 - 更改 fragment 时为 "Must be called from main thread of fragment host"

转载 作者:行者123 更新时间:2023-12-02 01:37:29 28 4
gpt4 key购买 nike

我试图使用以下代码在拍摄图像后更改 fragment Google Sample - Camera2Basic

我在上述示例的第 839 行实现了对 MainActivity 的回调。但是,当我尝试从该回调遍历到不同的 Activity 时,我收到以下异常:

java.lang.IllegalStateException: Must be called from main thread of fragment host

有人知道这件事吗?

最佳答案

我有 Kotlin 中的工作代码您必须将此回调替换为:

  val captureCallback = object : CameraCaptureSession.CaptureCallback() {

override fun onCaptureCompleted(session: CameraCaptureSession,
request: CaptureRequest,
result: TotalCaptureResult) {
sendBackResult(mFile)
}
}

mCaptureSession!!.capture(captureBuilder.build(), captureCallback, mBackgroundHandler)
} catch (e: CameraAccessException) {
e.printStackTrace()
}

sendBackResult方法如下:

private fun sendBackResult(resultFile: File?) {
val fileUri = Uri.fromFile(resultFile)
val dataIntent = Intent()
dataIntent.data = fileUri
dataIntent.putExtra("isFront", isFrontCamera)
activity!!.setResult(Activity.RESULT_OK, dataIntent)
activity!!.finish()
}

关于java - Camera2 - 更改 fragment 时为 "Must be called from main thread of fragment host",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55015464/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com