나는 안드로이드에서 mediaplayer를 테스트하고 있었는데 onCreate 메서드로 스트림을 시작했고 finish() 메서드를 호출하는 버튼이 있습니다. 버튼을 클릭 한 후에도 활동이 가깝더라도 재생되는 스트림을들을 수 있습니다.이 유형의 누수인지 궁금하고 finish() 메소드를 호출하기 전에 먼저 플레이어를 중지해야합니다. 그렇지 않으면 finish() 메소드는 실제로 리소스를 확보하기 위해 앱을 완전히 죽이지는 않습니다. 응용 프로그램을 죽이지 않는 finish()
를 호출Mediaplayer 및 finish() 메서드
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Button add_function,exit_btn;
add_function = (Button) findViewById(R.id.view_chat);
exit_btn = (Button) findViewById(R.id.exit_btn);
MediaPlayer mp = new MediaPlayer();
String URL_OF_FILE = "http://stream.radiosai.net:8002/";
try {
mp.setDataSource(URL_OF_FILE);
mp.prepare();
} catch (IllegalArgumentException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (SecurityException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IllegalStateException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
mp.start();
exit_btn.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
// TODO Auto-generated method stub
finish();
}
});
}// EOF ONCREATE
코드를 표시하십시오. MediaPlayer 인스턴스는 어디에 선언합니까? – Simon
기본 게시물을 편집하여 – kabuto178