在没有ANR的情况下调用MediaPlayer.isPlaying()的正确方法?

时间:2012-10-29 05:30:52

标签: java android

在我的应用程序中,我有一个播放音频的服务,该服务只有一个静态MediaPlayer对象。在我的主要活动的onStart()中,我致电MediaPlayer.isPlaying();以确定要显示哪些UI元素,我会在我调用NullPointerException <的行处收到ANR消息和MediaPlayer.isPlaying(); / p>

当按下某些按钮时,我也会调用MediaPLayer.isPlaying();,这也会导致ANR,我发现在我MediaPlayer.isPlaying();之后取消了onStart();来电,因为我不能没有ANR就过去了......

我发现了类似的问题:MediaPlayer isPlaying() always returning false

当有人说:“另外,当我们使用一般的MediaPlayer主题时,请注意isPlaying()在UI线程上调用时会导致ANR。事实上,Google建议从后台处理程序线程执行所有MediaPlayer调用这也将序列化MediaPlayer调用的执行。“

我在文档中找不到任何相关内容。那么在这些场景中如何创建短期线程的最佳方法是什么?这样我能够检查MediaPlayer的状态?或者还有另一种方式吗?

0 个答案:

没有答案