火炬:如何在另一个线程中注册火炬回调?
Torch: How to register a torch callback in another thread?
我正在尝试将 CameraManager.TorchCallback using CameraManager.registerTorchCallback 注册到特定线程(即:与 UI 线程不同)。
我的代码对于 Camera2 实现来说非常基础:
- 得到CameraManager
- 获取摄像头idfrom the manager
- 注册我的CameraManager.TorchCallback using CameraManager.registerTorchCallback
- 更新手电筒状态using the CameraManager
如果我 运行 在主线程中编写该代码,一切正常,当我 运行 将其放入另一个线程 class(覆盖 run
)时,永远不会调用回调。我确保我的线程没有终止,在 Android 工作室分析器上可见。注册和线程有些东西我不明白。
你试过那种实现方式吗?
欢迎任何想法!
即使您从后台线程调用 registerTorchCallback(),回调仍将发布到 UI 线程。您必须 create a new HandlerThread 并为其获取处理程序。
我正在尝试将 CameraManager.TorchCallback using CameraManager.registerTorchCallback 注册到特定线程(即:与 UI 线程不同)。
我的代码对于 Camera2 实现来说非常基础:
- 得到CameraManager
- 获取摄像头idfrom the manager
- 注册我的CameraManager.TorchCallback using CameraManager.registerTorchCallback
- 更新手电筒状态using the CameraManager
如果我 运行 在主线程中编写该代码,一切正常,当我 运行 将其放入另一个线程 class(覆盖 run
)时,永远不会调用回调。我确保我的线程没有终止,在 Android 工作室分析器上可见。注册和线程有些东西我不明白。
你试过那种实现方式吗?
欢迎任何想法!
即使您从后台线程调用 registerTorchCallback(),回调仍将发布到 UI 线程。您必须 create a new HandlerThread 并为其获取处理程序。