我试图连续捕获图像(每秒之后)。我正在使用处理程序来模拟每秒按下一次按钮。但是,在连续捕获2分30秒后,应用程序开始挂起,并且帧的刷新速率变慢。此处提供了代码。
val handler = Handler()
button.setOnClickListener {
prepareUIForCapture()
if(isRunning){
handler.removeCallbacksAndMessages(null)
restartActivity()
}else{
button.text = "Stop"
handler.postDelayed(object : Runnable {
override fun run(){
twoLens.reset()
twoLens.isTwoLensShot = true
MainActivity.cameraParams.get(dualCamLogicalId).let {
if (it?.isOpen == true) {
Logd("In onClick. Taking Dual Cam Photo on logical camera: " + dualCamLogicalId)
takePicture(this@MainActivity, it)
Toast.makeText(applicationContext, "Captured", Toast.LENGTH_LONG).show()
}
}
handler.postDelayed(this, 1000)
}
}, 1000)
}
isRunning = !isRunning
}
}
我注意到的问题是垃圾收集器在连续捕获大约2分钟后启动,然后导致了滞后。我相信可能与Handler有关? 我也尝试分析内存。这是连续拍摄第二分钟的样子。
这方面有帮助吗?