ストップボタンを使用して、スレッドタイマー内のループを壊したかったのです。しかし、Ecclips は、stopsound() で「トークンの構文エラー、構造の配置ミス」というエラーを表示します。スレッドタイマー内のメソッド。
for ループ内で関数を定義できないことがわかっているため、エラーが発生しています。しかし、私は知りたかったのですが、停止ボタンを使用してスレッドタイマー内にあるループをどのように壊すことができますか?
stop = (ImageButton) findViewById(R.id.imageButton3);
stop.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
stopsound();
}
});
public void mpsleep() {
mp.start();
Thread timer= new Thread(){//create new thread with anonymous class
public void run(){
try{
for (i= 0;i< maxCount;i++){
sleep(5000);//5 pause
public void stopsound(){
break;
}
}
}catch(Exception e){
e.printStackTrace();//print the stack trace if have an error
}finally{
runOnUiThread(new Runnable() {
@Override
public void run() {
mp.pause();
mp.seekTo(0);
loop=0;
bv.setImageResource(R.drawable.playzz);
}
});
}
}
};
timer.start();
}
壊れる別の方法を見つけましたが、停止ボタンを押してから 5 秒後にしか壊れません。
int loop=0;
stop.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
loop=1
}
});
public void mpsleep() {
Thread timer= new Thread(){
public void run(){
try{
for (i= 0;i< maxCount;i++){
sleep(5000);//5 pause
if (loop==1){
break;
}
}
}finally{
runOnUiThread(new Runnable() {
public void run() {
mp.pause();
mp.seekTo(0);
loop=0;
bv.setImageResource(R.drawable.play);
}
});
}}
停止ボタンがクリックされた直後に for ループを中断するにはどうすればよいでしょうか??