一、Bug是这样的:
快捷键切换过去的时候,ATV的声音还在放(想一想当你不想看电视了,想切换到音乐类应用听听歌,但是电视声音还在放是种怎么让人抓狂的感受)。
二、当前设计是这样的:
ATV切换到其他应用有两种方式
(1)ATV切换到Lauch后再切换到其他应用
(2)快捷键直接切换到其他应用
三、在这种设计下导致这个问题的原因是这样的:
由于正常情况下,一般是通过遥控器先到主页,然后再进入其他APP,所以当前设计将切断ATV信源的工作交给了Launch来做(也就是把声音切断了)。
所以通过方式(1)切到APP的时候,电视声音是不会让人蛋疼地出现的,但是如果通过快捷键跳过去,那么就缺少了切掉信源(切断声音)这个操作,
因此,导致了上面所说的问题。
四、解决方法:
在ATV的onStop里将信源切断,而不在Launch中作这个处理。
五、结论:
可以看出,真正导致这个问题的原因是开发ATV应用的人不应该让其他应用来操纵信源(这是ATV应用自己的事情)。
应用自己的事情,就应该自己来做,只有这样才能够将一个应用当一个状态机来对待,其他应用导致自身状态发生变化的时候,自己切换到相应的状态就行了,这才是合理的方式。