我将使用下面的一个简单示例来提问我的问题。我有一个按钮,点击时播放一首歌。在我的OnCreate()方法之外,我有3个方法,pauseMusic(),playMusic()和onDestroy()。
pauseMusic()和playMusic()在我的Button的OnClickListener方法中使用,具体取决于歌曲是否正在播放。我的问题是,我必须在OnClickListener中输入这些方法,我确切知道它们何时被使用,为什么我不必在任何地方输入我的onDestroy()方法?我注意到@Override方法一直在发生这种情况。它们是否只是自动调用一次?谢谢。
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
mediaPlayer = MediaPlayer.create(getApplicationContext(),R.raw.peterock);
btn = (Button) findViewById(R.id.playButton);
btn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
if (mediaPlayer.isPlaying()){
pauseMusic();
}else{
playMusic();
}
}
});
}
public void pauseMusic(){
if (mediaPlayer!=null){
mediaPlayer.pause();
btn.setText("Play");
}
}
public void playMusic(){
if (mediaPlayer!=null){
mediaPlayer.start();
btn.setText("Pause");
}
}
@Override
protected void onDestroy() {
if (mediaPlayer!= null && mediaPlayer.isPlaying())
mediaPlayer.stop();
mediaPlayer.release();
mediaPlayer = null;
}