Я работаю с режимом Android USB Host и хотел бы выполнить асинхронная массовая передача. До сих пор я успешно использовал синхронные массовые передачи, но у меня возникли небольшие проблемы с пониманием того, как части объединяются для асинхронной передачи. Из документации UsbRequest (выделено жирным шрифтом):
Запросы на массовые конечные точки можно отправлять синхронно через bulkTransfer(UsbEndpoint, byte[], int, int) или асинхронно через queue(ByteBuffer, int) и requestWait() [метод UsbDeviceConnection].
Хорошо, значит ли это, что я вызываю queue() из существующего потока выполнения, а затем requestWait() где-то еще в другом потоке? Откуда requestWait() получает мою логику для выполнения после завершения запроса? Большая часть асинхронной работы, которую я проделал, была связана с такими языками, как Javascript и Python, обычно с передачей функции обратного вызова в качестве аргумента. В Java от меня ожидалось, что я, возможно, передам объект, который реализует определенный метод, в качестве обратного вызова, но я нигде не вижу, чтобы это происходило. Возможно, моя ментальная модель всего этого неверна.
Может ли кто-нибудь привести отдельный пример отправки асинхронной массовой передачи?