В java вообще остановка параллельных потоков это отдельная тема :) Потому наверное и проблемы, что потоки разные для каждой кнопки, а остановить потоки нормально нельзя.
Дело в том, что на практике кнопки у меня запускают не сразу звук, а условную "рулетку". При чем каждая кнопка в отдельном потоке. По результату рулетки звучит определенный звук. В итоге если отталкиваться от условий "что нажато", как вы внизу написали, то получается дублирование одного из звуков.
Сергей: Такое протезирование я уже делал, в итоге дублированное звучание одного из звуков.
Можете посоветовать пример с триггером. Буду делать более правильно.
У меня есть две кнопки, которые выполняют эти условия. При нажатии на кнопку 1 звучит звук 1, при нажатии на кнопку 2 звучит звук 2. Но вся загвоздка в том, что кнопки можно нажать одновременно. И как тогда определить какой звук первый должен звучать, какой второй? А если нажатие какой-то кнопки на миллисекунды позже, то даже просто в таком варианте if ( условие 1 ) { оператор 1 } ; if ( условие 2 ) { оператор 2 } ; происходит дублирование и один звук звучит дважды.
myFirstListener = new View.OnClickListener() {
@Override
public void onClick(View v) {
image.startAnimation(anim);
button.setOnClickListener(mySecondListener);
}
};
mySecondListener = new View.OnClickListener() {
@Override
public void onClick(View v) {
image.startAnimation(anim_i);
button.setOnClickListener(myFirstListener);
}
};
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.main, menu);
return true;
}
}