为什么在UI线程上实现android mediaPlayer回调?

时间:2013-07-30 15:40:57

标签: android multithreading event-handling android-mediaplayer

我有自定义jni原生播放器实现。事实上,Android应用程序同时使用2个玩家来加速下一个轨道准备。

我注意到android的android.media.MediaPlayer实现将所有内容都放回到UI线程中,现在我正在尝试理解原因,可能的好处以及是否以同样的方式做到这一点。目前,来自每个jni播放器的所有玩家事件/回调都将返回到运行该本机玩家的java线程。

请分享您的想法。感谢。

1 个答案:

答案 0 :(得分:0)

通过使用UI线程,它完全定义了调用回调的线程。它简化了使用UI线程的其他任务的排序。正如评论中所提到的,如果它不在UI线程中,它将是一个随机线程,或者它将需要一个执行器,使其更复杂。

如果您使用自己的线程代替UI线程,那么用户必须进行大量同步并将消息发布到UI线程,以获取需要UI线程的方法;已经在UI线程上,在最坏的情况下,如果回调太长,您将看到性能下降。