Java .release()没有';查看android监视器图形时,请不要减少我的内存

Java .release()没有';查看android监视器图形时,请不要减少我的内存,java,android,memory,Java,Android,Memory,我在脚本中添加了.release()方法并运行了android emulator,在运行时我查看了我的android监视器并开始单击文本视图播放声音 但是当声音结束时没有记忆被释放,我做错了什么 package com.example.android.miwok; import android.media.MediaPlayer; import android.os.Bundle; import android.support.v7.app.AppCompatActivity; import

我在脚本中添加了.release()方法并运行了android emulator,在运行时我查看了我的android监视器并开始单击文本视图播放声音

但是当声音结束时没有记忆被释放,我做错了什么

package com.example.android.miwok;

import android.media.MediaPlayer;
import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;
import android.view.View;
import android.widget.AdapterView;
import android.widget.ListView;

import java.util.ArrayList;

public class NumbersActivity extends AppCompatActivity {

private MediaPlayer mMediaPlayer;

private MediaPlayer.OnCompletionListener mCompletionListerner = new MediaPlayer.OnCompletionListener() {
    @Override
    public void onCompletion(MediaPlayer mediaPlayer) {
        releaseMediaPlayer();
    }
};

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.word_list);

    final ArrayList<Word> words = new ArrayList<>();    // <-- Creates list

    words.add(new Word("one", "lutti", R.raw.number_one, R.drawable.number_one));
    words.add(new Word("two", "otiiko", R.raw.number_two, R.drawable.number_two));
    words.add(new Word("three", "tolookosu", R.raw.number_three, R.drawable.number_three));
    words.add(new Word("four", "oyyisa", R.raw.number_four, R.drawable.number_four));
    words.add(new Word("five", "massokka", R.raw.number_five, R.drawable.number_five));
    words.add(new Word("six", "temmokka", R.raw.number_six, R.drawable.number_six));
    words.add(new Word("seven", "kenekaku", R.raw.number_seven, R.drawable.number_seven));
    words.add(new Word("eight", "kawinta", R.raw.number_eight, R.drawable.number_eight));
    words.add(new Word("nine", "wo'e", R.raw.number_nine, R.drawable.number_nine));
    words.add(new Word("ten", "na'aacha", R.raw.number_ten, R.drawable.number_ten));

    WordAdapter adapter = new WordAdapter(this, words, R.color.category_numbers);


    ListView listView = (ListView) findViewById(R.id.list);     // <-- id the Listview
    listView.setAdapter(adapter);

    listView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
        @Override
        public void onItemClick(AdapterView<?> adapterView, View view, int position, long l) {
            releaseMediaPlayer();
            Word word = words.get(position);
            mMediaPlayer = MediaPlayer.create(NumbersActivity.this, word.getAudioResourceId());
            mMediaPlayer.start();
            mMediaPlayer.setOnCompletionListener(mCompletionListerner);
        }
    });
}

private void releaseMediaPlayer() {
    if (mMediaPlayer != null) {
        mMediaPlayer.release();
        mMediaPlayer = null;
    }
}
}
package com.example.android.miwok;
导入android.media.MediaPlayer;
导入android.os.Bundle;
导入android.support.v7.app.AppActivity;
导入android.view.view;
导入android.widget.AdapterView;
导入android.widget.ListView;
导入java.util.ArrayList;
公共类编号活动扩展了AppCompatActivity{
私有媒体层;
private MediaPlayer.OnCompletionListener MCCompletionListener=新MediaPlayer.OnCompletionListener(){
@凌驾
完成时的公共作废(MediaPlayer MediaPlayer){
释放MediaPlayer();
}
};
@凌驾
创建时受保护的void(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.word\u列表);
final ArrayList words=new ArrayList();//Android(通常是Java)使用系统

此收集器不会立即“收集”空闲内存,并且您无法准确地确定它将在何时通过!因此,当您
.release()
对象或任何其他对象时,您必须等待GC确定是时候了

释放引用的唯一效果是告诉GC可以对该对象进行垃圾收集……仅此而已;)

所以,为了回答你的问题:你没有做错任何事,你只需要等待和希望GC