请问Handler作为方法参数时如何使用?

请问Handler作为方法参数时如何使用?

在有些方法中,比如CameraCaptureSession的setRepeatingRequest方法中,Handler是作为一个参数传入方法的,请问这种情况Handler怎么使用?谢谢!

正在回答 回答被采纳积分+1

登陆购买课程后可参与讨论,去登陆

2回答
好帮手慕雪 2020-05-27 15:45:29

http://img1.sycdn.imooc.com//climg/5ece1a51095f73ef10460383.jpg

跟课程里的Handler一样,正常的new Handler,该重写重写,收到消息后,做什么你得重写到handlerMessage里。

  • 提问者 慕村4340802 #1
    可是这种带Handler参数的方法是系统给定的,我也不知道程序拿着Handler对象干嘛去了啊,不知道怎么sendMessage。 比如这段相机拍照的代码里有两处可以用Handler,不知道怎么处理 // 捕获静态图像 captureSession.capture(captureRequestBuilder.build(),new CameraCaptureSession.CaptureCallback() { // 拍照完成时激发该方法 @Override public void onCaptureCompleted(@NonNull CameraCaptureSession session, @NonNull CaptureRequest request, @NonNull TotalCaptureResult result) { try { // 重设自动对焦模式 previewRequestBuilder.set(CaptureRequest.CONTROL_AF_TRIGGER,CameraMetadata.CONTROL_AF_TRIGGER_CANCEL); // 设置自动曝光模式 previewRequestBuilder.set(CaptureRequest.CONTROL_AE_MODE,CaptureRequest.CONTROL_AE_MODE_ON_AUTO_FLASH); // 打开连续取景模式 captureSession.setRepeatingRequest(previewRequest, null, camHandler); } catch (CameraAccessException e) { e.printStackTrace(); } } }, camHandler);
    2020-05-27 16:03:48
  • 好帮手慕雪 回复 提问者 慕村4340802 #2
    消息是系统发出的,不是用户发的。
    2020-05-27 17:05:30
好帮手慕雪 2020-05-27 10:42:41

第三个参数传递你自己新创建的那个Handler对象就可以了。祝:学习愉快

  • 提问者 慕村4340802 #1
    谢谢回答。进一步确认:比如我先 Handler myHandler = new Handler(); ,然后把 myHandler 写在第三个参数的位置,其他就什么都不用写了吗?
    2020-05-27 15:36:16
问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星
2.Android 网络操作与流行框架
  • 参与学习           人
  • 提交作业       220    份
  • 解答问题       1800    个

本阶段是联网及数据处理的必备技能。课程从网络基础知识到线程间协同工作、异步下载处理;从文件存储、到轻量级数据库SQLite的使用;最后利用最流程的第三方框架助你快速开发企业级APP。

了解课程
请稍等 ...
意见反馈 帮助中心 APP下载
官方微信

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师