ボタンがあり、ユーザーがボタンをタップすると、スレッドを実行して何かを行います。
ユーザーがボタンを何度もタップすると、同時に多くのスレッドが実行されます。
ユーザーが複数回タップしたときに、スレッド実行のみを実行した場合、どうすれば回避できますか。最初のスレッドが完了すると、2 番目のスレッドを実行できます。
ありがとう
ボタンがあり、ユーザーがボタンをタップすると、スレッドを実行して何かを行います。
ユーザーがボタンを何度もタップすると、同時に多くのスレッドが実行されます。
ユーザーが複数回タップしたときに、スレッド実行のみを実行した場合、どうすれば回避できますか。最初のスレッドが完了すると、2 番目のスレッドを実行できます。
ありがとう
クリックに反応してスレッドを開始したことを示すブール値を保持する必要があります。このようなもの:
boolean threadStarted = false;
public void onClick(View v) {
if (!threadStarted) {
// start thread here
threadStarted = true;
} else {
// Ignore this spurious click
}
}
注: スレッドが完了したら、ブール値を false にリセットすることを忘れないでください
試してみましたか:myButton.setEnabled(false)
ボタンが押されたときに追加myButton.setEnabled(true)
してから、スレッドの最後に追加します。