【问题标题】:releasing mediaplayer when calling OnDestroy forces exit when backplayer pressed调用 OnDestroy 时释放媒体播放器会在按下 backplayer 时强制退出
【发布时间】:2013-01-05 07:55:37
【问题描述】:

我有一个应用程序可以在用户浏览几次后播放音频。起初一切正常,除非在播放音频时按下后退按钮,此时应用程序关闭但音频继续。经过研究,我放入了 OnDestroy 方法并释放了现在在音频播放期间按下后退按钮时停止的媒体播放器。

但是,现在当在媒体播放器启动之前的先前视图之一中按下后退按钮时,我会收到强制关闭消息,并且 logcat 说无法销毁活动 - 我假设是因为没有媒体播放器可以释放?有谁知道怎么回事?

我只在媒体播放时尝试了对 super.OnDestroy 的 if 语句,但这没有效果。

【问题讨论】:

  • 没有看到任何代码是不可能的。但是,我猜您的 MediaPlayer 引用是 nullMediaPlayer 实例不处于“有效”状态,您无法执行您想做的事情。

标签: android media-player ondestroy


【解决方案1】:

如果您尝试释放您的Mediaplayer,但如果用户没有播放歌曲,您没有对其进行初始化,那么您收到异常是有道理的。

通常,验证您的值是否为空可能是关键。还有一件事:不要在onDestroy 中处理这种情况,因为它不能保证被调用,如果可能的话,更喜欢onStop

【讨论】:

  • 是的,我想我得到了一个空指针异常。如何在启动媒体播放器之前对其进行初始化?大概我必须在调用 MainActivity 后直接初始化它。
  • 好的我已经设法从另一个线程初始化它,它现在似乎工作正常。感谢您对 onStop 的帮助和建议
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-01-22
相关资源
最近更新 更多