メインアクティビティ の下のコードでpauseThreadメソッドを呼び出して、currentscore整数のカウントを停止したいとします。いくつかの例のコードは高く評価されます。それができない場合は、ボタンをクリックするとカウントを止める方法ですか?おそらくスレッドを一時停止しますか?Androidスタジオ:メインアクティビティのスレッドでメソッドを呼び出す
public class ScoreThread extends Thread {
private boolean counter;
private int currentscore;
Handler scorehandler = new Handler();
private TextView playerscore;
ScoreThread(TextView v, Boolean b) {
playerscore = v;
counter = b;
}
public void pauseThread() throws InterruptedException {
counter = false;
}
public void resumeThread() throws InterruptedException {
counter = true;
}
public void run() {
currentscore = 0;
new Thread(new Runnable() {
@Override
public void run() {
while(counter == true) {
currentscore = currentscore + 1;
scorehandler.post(new Runnable() {
@Override
public void run() {
playerscore.setText("" + currentscore);
}
});
try{ Thread.sleep(50);} catch (InterruptedException e) {e.printStackTrace();}
}
}
}).start();
}
}
まずしばらく(カウンタ)の代わりに使用すると、私はそうでない。.. runメソッド内の別のスレッドを呼び出している間(カウンタ== true)を –
秒の十分なはず使用わかる。あなたは一回の実行方法であなたのすべてのタスクを実行することができます実行メソッドで別のスレッドを作成する必要はありません –
私はあなたのtextViewは、ユーザーがそのポイントの正確なスコアを見ることができないほど速く更新されると思う。 秒のうち、カウンタ/スレッドコンポーネントを1回だけyou/user/mobileで使用できるようにSynchronizedを使用してください。 –