我发现了几个类似的头戴式耳机状态检测示例,它们都使用开关来确定ACTION_HEADSET_PLUG广播的状态。我在一个服务中使用此代码,以便在插入耳机时触发其他代码。
下面的示例确实检测到了正确的头戴式耳机状态,但由于某种原因,它似乎正在运行twice..ie。当我插入耳机时,我连续收到两条“耳机已插入”日志消息,当我拔下电源插头时,又收到另外两条“耳机已拔出”的日志消息。我在switch语句中放入的任何代码也会被调用两次。我不明白为什么会这样。如何改变这一点,使我的代码只被调用一次?
public class HeadsetObserverService extends Service {