当前位置:编程学习 > wap >>

Android: MediaPlaybackService进程被杀掉,导致不能收到ACTION_MEDIA_EJECT

RT。
我的操作步骤是:
1. 插入SD卡
2. 播放歌曲。
3. 播放歌曲的过程中到设置界面,执行卸载SD卡操作
4. 等待卸载过程结束,并观察音乐播放的notification;

我这边的表现是,执行3之后,音乐停止,但是图标会消失一下然后重现,然后过一段时间(大约5s)消失。这个表现的原因是在执行卸载sd的时候,系统会强行杀掉所有和sd有关的进程,然后5s之后重启。

我查看过framework的代码的执行过程:执行卸载操作之后,调用MountService的操作,这些操作中包括取得所有和SD卡相关的进程的pid,然后逐一的强行执行kill -9 pid操作,等待所有进程操作结束后,才开始真正执行volume unmount命令。然后NativeDaemonConnector在接收到命令的执行返回socket之后,调用回调onEvent,在这里发送ACTION_MEDIA_EJECT。

问题是,MediaPlaybackService需要接收ACTION_MEDIA_EJECT做一些处理(stop playing等),这个就是引起notification表现异常的原因。

这个异常是不能接受的,不知道有没有人遇到过类似的问题,有什么解决方案?
谢谢。 --------------------编程问答-------------------- hello,楼主,最后你怎么解决的呢? --------------------编程问答-------------------- 解决了吗?
补充:移动开发 ,  Android
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,