我正在创建一个库函数,它应该注册数据监听器并开始扫描条形码。读取条形码时,会触发onData()
回调。该函数应该等到读取条形码并处理数据并返回结果。我尝试使用lockObject.wait()
等待,直到我在onData()
函数中获取数据。但由于回调也是在主线程上触发的,所以它一直在等待。所以我想把回调监听器移动到新线程。但是当我创建一个新线程并尝试注册数据监听器时,它会抛出Can't create handler inside thread that has not called Looper.prepare()
。
我尝试过搜索,很多人建议将功能移到主线程但我无法在我的库函数等待主线程时使用。解决此问题或重新设计此功能实现的最佳方法是什么?