解决Wifi,耳机 等广播接收两次现象
来源:互联网 发布:恒大社会招聘网络面试 编辑:程序博客网 时间:2024/05/29 15:29
最近在写一个项目,遇到了断开连接网络时,广播接收两次现象,根据广播接收特性很好解决这个问题,我们可以在 contentReceiver 中定义一个标记变量, 当每次调用此方法的时候,执行++方法,再通过接口回调的方式,利用系统收到广播后自动回调 onReceiver() 方法,实现分辨出两次广播实现代码如下:
public class MusicReceiver extends BroadcastReceiver { int mark = 1; public static final String HEADSET = "true"; public static final String ACTION = "startMusic"; public StartMusic start; public MusicReceiver() { } @Override public void onReceive(Context context, Intent intent) { mark++; Toast.makeText(context, "广播收到", Toast.LENGTH_LONG).show(); /** * when headset call startPlaying music * send a boradcast */ //Intent intent1 = new Intent(ACTION); // context.sendBroadcast(intent1); if (start!=null) { // descation headset state start.againg(mark); } } // callback method public interface StartMusic{ void againg(int text); } public MusicReceiver(StartMusic start) { this.start = start; }}
MainActivity 方法中:
public void registtBroadcast(){ Log.d("mmm", "registtBroadcast: ---------------->注册广播成功"); Toast.makeText(this, "注册成功--", Toast.LENGTH_LONG).show(); IntentFilter filter = new IntentFilter(); MusicReceiver mr = new MusicReceiver(this); filter.addAction(Intent.ACTION_HEADSET_PLUG); // registerReceiver(mr,filter,null,handler); registerReceiver(mr,filter); Log.d(TAG, "registtBroadcast: ---------------->注册广播成功"); Toast.makeText(this, "注册成功", Toast.LENGTH_LONG).show(); } /** * broadcast receive * @param text */ @Override public void againg(int text) { // when music is stop and soft is open //headset in int position = service.getPosition(); if (text%3==0) { if (!service.isPlay()) { //you should get the list position to listner service.playOrPause(position); } }else{ //headset out if (service.isPlay()) { service.playOrPause(position); } }
1 0
- 解决Wifi,耳机 等广播接收两次现象
- Android,开启wifi接收广播
- Android,开启wifi接收广播
- 解决Ubuntu插拔耳机有杂音现象
- 监听网络的广播接收者接收两次解决方案
- android 解决广播接收延时问题:前台广播
- 前台广播——解决广播接收延时问题
- 广播接收
- 接收广播
- Android 接收安装, 卸载,更新等系统广播
- android 解决 广播接收者监听网络变化会受到两次广播
- Android使用wifi通过UDP协议发送广播数据包给PC接收不到问题解决方法
- Android解决使用广播监听网络状态变化时接收到多个广播的问题
- 发送广播和接收广播
- 解决耳机不出声
- 广播接收销毁
- Intent 广播 发送 接收
- 接收和发送广播
- docker(一)部署tomcat应用
- 131. Palindrome Partitioning | Java最短代码实现
- linux 线程边学边总结
- 虚拟机克隆CentOS后的网卡配置
- python分治
- 解决Wifi,耳机 等广播接收两次现象
- rman报错问题 RMAN-03002: failure of recover command
- 全排列非递归
- spring学习笔记(16)趣谈spring 事件机制[2]:多监听器流水线式顺序处理
- CSS3 中关于 select 下拉列表的样式
- ios/swift上传代码到CocoaPods
- +++用纯css改变下拉列表select框的默认样式+++
- 跟我一起学习MySQL技术内幕(第五版):(第一章学习日记1)
- Cocos2dx Shader 使用系列之一:OpenGL Shader Language介绍