Androidでメディアプレーヤーをテストしていたところ、onCreateメソッドでストリームを開始し、finish()メソッドを呼び出すボタンがあります。ボタンをクリックした後、アクティビティが閉じていてもストリームの再生が聞こえます。これは一種のリークであり、finish() メソッドを呼び出す前に最初にプレーヤーを停止する必要があるのか 、それとも 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