AndroidFM模块学习之五关闭FM流程

前一阵子简单描述了一些关于FM开启、录音和搜索的流程,浅析了一下各个类的源码,接下来就是关闭FM了,FM模块的学习就告一段落了,希望这阵子的整理能对大家在FM的了解上有一定帮助,如果大家在修改FM模块的上层代码时遇到了问题或BUG,可以留言,我们共同来处理。

FM关闭有两种方式,一种是拔出耳机,FM关闭,另一种是按关闭按钮。

请看第一种方式:

流程图:

FmRadioService类中,用户直接拔出耳机会接收到一个,耳机拔出广播Intent.ACTION_HEADSET_PLUG当耳机被拔出后 mHeadsetPlugged =(intent.getIntExtra("state", 0) == 1); 取零。然后使用mHandler.post(mHeadsetPluginHandler);刷新耳机状态。调用fmOff();fmOff()调用stopFM()方法关闭fm接收的信号设备,调用FMRecevice的disable()方法关闭调频装置。调用mCallbacks.onDisabled();IFMRadioServiceCallbacks中的onDisabled()发一个handler,mHandler.post(mRadioDisabled);关闭FMRadio的UI状态等

cleanupTimeoutHandler();endSleepTimer();stopRecording();cancelSearch();enableRadioOnOffUI(false);

接下来请看第二种方式:

流程图:

当在FMRadio类界面手动关闭fm点击关闭按钮的时候,通过mOnOffButton监听在回调方法mTurnOnOffClickListener中当fm播放的时候就可以手动关闭,通过发送handler mDisableRadioTask回调方法。mDisableRadioTask中调用disableRadio();方法。通过继承存根类的类的引用调用FMRadioService中的fmOff();(mService.fmOff();),fmOff()调用stopFM()方法关闭fm接收的信号设备,调用FMRecevice的disable()方法关闭调频装置,调用enableRadioOnOffUI();更改FMRadio

UI界面状态。

android fm模块学习,AndroidFM模块学习之5关闭FM流程相关推荐

  1. python网络数据处理之html2text模块和readability模块学习使用

    今天在处理html数据的时候发现了python里面比较好玩的几个库,先存起来之后有时间慢慢再去学习和使用,觉得是一件蛮有意思的事情.今天想学习使用的是html2text模块和readability模块 ...

  2. node学习笔记--模块加载

    学习笔记过程,自己理解,方便自己查询,新手一枚,希望批评指正. 使用 webstrom 编辑器 可以将安装的node.exe 配置进去,直接运行,可自行百度配置. 通过命令行参数传递给NodeJS以启 ...

  3. [AngularJS] “多重路由”嵌套模块——AngularJS“路由”嵌套学习资料教程

    这是小编的一些学习资料,理论上只是为了自己以后学习需要的,但是还是需要认真对待的 以下内容仅供参考,请慎重使用学习 1.AngularJS路由嵌套 Angularjs本身自带路由模块,可以满足通过不同 ...

  4. pythonurllib模块-python爬虫之urllib模块和requests模块学习

    今天学习了request模块和urllib模块,了解到这两个模块最大的区别就是在爬取数据的时候连接方式的不同.urllb爬取完数据是直接断开连接的,而requests爬取数据之后可以继续复用socke ...

  5. Python学习--Selenium模块

    1. Python学习--Selenium模块介绍(1) 2.Python学习--Selenium模块学习(2) 其他: 1. Python学习--打码平台 转载于:https://www.cnblo ...

  6. 学习之模块架构 DotNetNuke 6

    前面的博客介绍了: 如何在本地安装DNN6 如何创建DNN模块 博客园原文地址 :  学习之模块架构 DotNetNuke 6 这篇博客主要是讲模块的架构和加载,以及模块与DotNetNuke门户网站 ...

  7. simulink学习仿真(微分模块、传递函数模块使用、波特图频率特性)day3

    1. 微分模块使用及举例建模 大多数物理系统可以用微分方程来描述,因此可以用连续系统模拟.最简单的模型为"线性模型"和**"定常模型"**. 在Simulink ...

  8. PyTorch 入坑七:模块与nn.Module学习

    PyTorch 入坑七 模型创建概述 PyTorch中的模块 torch模块 torch.Tensor模块 torch.sparse模块 torch.cuda模块 torch.nn模块 torch.n ...

  9. 模块一:深度学习入门算法

    模块一:深度学习入门算法 1.深度学习必备知识 1.1深度学习要解决的问题 机器学习流程: 数据获取 -----> 特征工程 -----> 建立模型 ------> 评估与应用 特征 ...

最新文章

  1. TX2更新源失败的问题
  2. c语言程序解决生活中的问题作文,生活中烦恼的事五年级满分作文
  3. 字符串哈希函数(String Hash Functions)
  4. git错误fatal: remote origin already exists.
  5. 3-2 文件夹类Directory的常用方法(2)
  6. 【大牛系列教学】java面试常考的编程题
  7. Mac上的抓包工具Charles
  8. 您已从远程计算机注销,您无法从 Windows Server 2008 R2 中的远程桌面会话注销
  9. 8086-汇编-模块化程序设计
  10. 当机器人具有自我知觉,并能自适应环境,真的不可怕吗?
  11. RabbitMQ消息队列,看这篇文章就够了
  12. caffe 使用笔记
  13. html缎带按钮,6款丝带蝴蝶结系法图解_乌托家家居网
  14. 闭合曲线 网格坐标 matlab,MATLAB曲线绘制
  15. linux 命令 cups,linux cups 打印机命令说明
  16. 阿里云 域名 服务条款
  17. 内存管理之:页和页框地址变换结构
  18. python编程题13-蒙特·卡罗方法计算圆周率
  19. Orz这个词的复杂意思[z]
  20. 备战金九银十,腾讯 T4 梳理 2022 年最全 999 道 Java 岗必备面试题答案

热门文章

  1. 转:自定义谷歌地图配色方案
  2. 蒙娜丽莎,品牌创新的探索者
  3. 从子窗体传递数据给父窗体
  4. WEB前端 前端开发者 如何突破技术瓶颈
  5. viper4android哪个版本好,VIPER4Android最新版本
  6. Centos 7 docker 拉取镜像慢
  7. Apache seaTunnel的本地启动
  8. java发送html模板
  9. Flutter 动画组件
  10. oracle之 Got minus one from a read call 与 ORA-27154: post/wait create failed