Android 使用MediaPlayer后释放消耗的内存

Android 使用MediaPlayer后释放消耗的内存,android,android-mediaplayer,android-memory,Android,Android Mediaplayer,Android Memory,我正在开发一个包含100个音效的应用程序。 播放一些声音后,应用程序强制关闭。我知道这个问题会占用内存的所有可用空间。我尝试使用Release()方法,但调用此方法后,我无法再次播放声音。 我还尝试使用onDestroy()方法将mediaplayer的对象设置为null,但由于这类对象必须是final,所以我不能这样做。 你有什么建议? 这是我的密码: final MediaPlayer mp1 = MediaPlayer.create(MainActivity.this, R.raw.a1)

我正在开发一个包含100个音效的应用程序。 播放一些声音后,应用程序强制关闭。我知道这个问题会占用内存的所有可用空间。我尝试使用Release()方法,但调用此方法后,我无法再次播放声音。 我还尝试使用onDestroy()方法将mediaplayer的对象设置为null,但由于这类对象必须是final,所以我不能这样做。 你有什么建议? 这是我的密码:

final MediaPlayer mp1 = MediaPlayer.create(MainActivity.this, R.raw.a1);

    btn1.setOnClickListener(new View.OnClickListener() {

        @Override
        public void onClick(View v) {

            if (i[0] == false)
            {

                mp1.start();
                Toast.makeText(getBaseContext(), "horn", Toast.LENGTH_SHORT).show();

                b1.setBackgroundResource(R.drawable.stop_button);

                i[0] = true;

            }
            else
            {

                mp1.pause();
                mp1.seekTo(0);

                b1.setBackgroundResource(R.drawable.horn);

                i[0] = false;

            }

        }
    });

    mp1.setOnCompletionListener(new OnCompletionListener() {

        @Override
        public void onCompletion(MediaPlayer mp) {

            b1.setBackgroundResource(R.drawable.horn);

        }
    });

你试过这样的东西吗

可以在OnDestroy()方法中调用release()


应用程序强制关闭
是否需要显示堆栈跟踪?可能更适合您?是否可以发布崩溃日志?
 @Override
     public void onDestroy(){
     super.onDestroy();
        mp.release();
     }