第12章例12.2,开启新线程播放背景音乐
发表在Android图书答疑 2013-09-09
是否精华
版块置顶:
第12章的例12.2,我在playBGSound(){}里面的onCompletion(){}的try{}里添加了一个Thread.currentThread().getName(),发现这个方法是跑在MainThread里的,明明是新建线程的run()来调用这个方法,为什么会跑在主线程里呢?
分享到:
精彩评论 3
无语_mrkj
学分:3155 LV11
2013-09-11
沙发
在完成事件监听器外面使用thread对象可以获取到创建的那个新的线程。当执行完成事件监听器的代码后,当前的线程就恢复成了主线程,如果在继续播放时,还想在一个新的线程中播放,那么需要把创建新线程的代码放置到playBGSound()方法中,这样就可以实现每次播放都在一个新的线程中播放了。
坚决_mrkj
学分:0 LV1
TA的每日心情
第一天签到
2020-07-29 00:31:22
2013-09-14
板凳
[FIELDSET][LEGEND]引自:1楼[/LEGEND]
在完成事件监听器外面使用thread对象可以获取到创建的那个新的线程。当执行完成事件监听器的代码后,当前的线程就恢复成了主线程,如果在继续播放时,还想在一个新的线程中播放,那么需要把创建新线程的代码放置到playBGSound()方法中,这样就可以实现每次播放都在一个新的线程中播放了。
[/FIELDSET]

回复:你说“当执行完成事件监听器的代码后,当前的线程就恢复成了主线程”,这一结论我也可以从Log的结果推断出来,但这只是现象,我想知道你这一结论的一般性根据是什么?是因为只有UI线程可以进行事件监听(如点击监听,完成事件监听等),还是别的原因?
  
无语_mrkj
学分:3155 LV11
2013-09-18
地板
我也是根据Log的结果推断出来的,至于具体是什么原理,您可以查一下Android的官方文档,看看有没有详细的解答。
最近工作很忙,等忙过这一段时间,我也查看一下官方文档,看看具体是什么原理。
首页上一页 1 下一页尾页 3 条记录 1/1页
手机同步功能介绍
友情提示:以下图书配套资源能够实现手机同步功能
明日微信公众号
明日之星 明日之星编程特训营
客服热线(每日9:00-17:00)
400 675 1066
mingrisoft@mingrisoft.com
吉林省明日科技有限公司Copyright ©2007-2022,mingrisoft.com, All Rights Reserved长春市北湖科技开发区盛北大街3333号长春北湖科技园项目一期A10号楼四、五层
吉ICP备10002740号-2吉公网安备22010202000132经营性网站备案信息 营业执照