0

我在 Android 应用程序类中创建了一个 SoungMagager 类,因此我可以使用它来管理整个应用程序中的声音。在 SoundManager 中,我有一个 SoundPool 和一个 MediaPlayer 来分别播放一些短的和长的声音。

为了“清理”我,我将 release() SoundPool 和 MediaPlayer 的方法放在 onDestroy() 方法中,并调用 finish() 退出应用程序。

我的问题是,如果我这样做完成()并立即返回应用程序,我就没有声音了。没有声音池或媒体播放器。

如果我只是按“主页”硬件按钮退出,然后再次回到应用程序,就会有声音。

如果我finish(),然后进入系统应用管理并强制关闭应用程序,然后再次运行应用程序,有声音。

如果我使用 System.exit(0) 而不是 finish(),一切都很好,但我被告知不要那样做。

我怀疑这是因为 Application 类的事情,但我不确定。我应该如何解决这个问题?有什么建议么?

4

1 回答 1

0

我认为您将对象放入您将要完成的活动soundpoolmediaplayer所以它不会被破坏。我想你明白了我的意思。

public class SoundManager {

    public static SoundPool mSoundPool;
    public static MediaPlayer mMediaPlayer;
      .....
      ....
}

现在在您使用 soundpool 对象的活动中执行以下操作:-

   class <your activity> extend Activity{
       @Override
   public void onCreate(Bundle savedInstanceState) {
             SoundManager.mSoundPool = <assign your audio>;
             SoundManager.mMediaPlayer = <assign>;
       }
} 
于 2012-11-01T05:33:18.450 回答