【发布时间】:2016-06-18 20:47:41
【问题描述】:
我有两个活动,一个具有 Recyclerview 的主要活动和一个 detailActivity,每次用户单击 Recyclerview 的一个项目时都会启动它。 detailActivity 有一个 mediaplayer 组件,每次创建 detailActivity 时都会创建该组件。现在在 onDestroy 方法中,我总是通过这段代码释放 mediaPlayer 占用的资源:
@Override
protected void onDestroy() {
if (mMediaPlayer != null) {
if (mMediaPlayer.isPlaying()) {
mMediaPlayer.stop();}
mMediaPlayer.release();
mMediaPlayer=null;
}
super.onDestroy();
}
每当我在媒体播放器仍在准备时单击返回按钮时,应用程序都会冻结一段时间。我在 logcat 中得到的消息是这样的:
I/Choreographer: Skipped 112 frames! The application may be doing too much work on its main thread.
所以只有当我在准备时销毁活动时才会发生这种冻结,但如果它已经处于准备状态,则不会发生。我使用 prepreAsync 从互联网上获取媒体。 谢谢。非常感谢任何帮助。我被这个问题困扰了好几天!
【问题讨论】:
标签: android android-mediaplayer