Я собрал простое тестовое приложение, которое имеет кнопку и издает шум, когда пользователь нажимает на нее. Вот этот метод:
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
Button b = (Button)findViewById(R.id.easy);
b.setOnClickListener(this);
}
public void onClick(View v) {
MediaPlayer mp = MediaPlayer.create(this, R.raw.easy);
mp.start();
while(true) {
if (!mp.isPlaying()) {
mp.release();
break;
}
}
}
Мой вопрос: почему onCreate работает так, будто он находится в цикле while? Я могу нажать на кнопку в любое время, и она издает звук. Я мог бы подумать, что это было просто свойство слушателей, но объект Button не был переменной-членом. Я думал, что Android просто пройдет через OnCreate и перейдет к следующему методу жизненного цикла.
Кроме того, я знаю, что мой текущий способ видеть, воспроизводится ли звук, это дерьмо ... Я вернусь к этому позже. :)
Спасибо.