如果未使用媒体播放器并按下后退按钮,则强制关闭

时间:2012-03-08 16:26:31

标签: android nullpointerexception media-player forceclose

在一项活动中,我使用两个媒体播放器播放不同的声音,如果播放了两个声音并按下后退按钮就没有问题,它可以正常工作。媒体播放器停止并释放。(mp设置为循环,mps只播放短音)

@Override
protected void onPause() {
    // TODO Auto-generated method stub
    mp.stop();
    super.onPause();
}
@Override
protected void onStop() {
    // TODO Auto-generated method stub
    mp.release();
    mps.release();
    super.onStop();
}

但是,如果没有播放一个和/或两个声音,当按下后退按钮并且空指针异常时,我会强行关闭。您将如何编写代码来检查媒体播放器是否曾被使用过,因此需要停止并释放它们?

2 个答案:

答案 0 :(得分:0)

你可以使用一个计数,如果有一个游戏则添加一个计数,然后检查它是否等于0。

答案 1 :(得分:0)

如果你在onPause和onStop上得到一个空指针,你需要检查mp是否为空。

@Override
protected void onPause() {
    if (mp != null)
      mp.stop();
    super.onPause();
}
@Override
protected void onStop() {
   if (mp != null)
    mp.release();
   if (mps != null)
    mps.release();

    super.onStop();
}

如果您愿意,可以保留计数,但这意味着当您已经有权访问所需的变量时,可以跟踪另一个变量