Я сканирую штрих-код и отправляю его другому действию с намерением в receiveDetections (обнаружения :), например, так:
detector.setProcessor(object : Detector.Processor<Barcode> {
override fun release() {}
override fun receiveDetections(detections: Detector.Detections<Barcode>?) {
val barcodes = detections?.detectedItems
if (barcodes!!.size() > 0) {
Log.d("Scanned barcode:", barcodes.valueAt(0).displayValue)
val barcode = barcodes.valueAt(0).displayValue
detector.release()
// Send the barcode to ResultsActivity
val intent = Intent(this@ScannerActivity, ResultActivity::class.java)
intent.putExtra("barcodeFromScanner", barcode)
startActivity(intent)
}
}
})
По возвращении в ScannerActivity (кнопка «Назад», нажатая на ResultsActivity) намерениенемедленно выполняется снова, без сканирования.Я предполагаю, что это потому, что есть намерения, «ожидающие» выполнения, так как детектор продолжает обнаруживать штрих-коды даже после того, как он получает первое обнаружение ...?
Я пытался предотвратить это, вызывая release () на детекторе, но, похоже, это не помогло.
Есть ли какие-либо предложения о том, как я могу "убить" детектор при первом сканировании?