0

牛を数えるアプリを作りました。基本的に牛の収入があります。私はタイマーを使用して収入を処理していますが、別の活動に切り替えてメインの活動に戻るまで、すべてがうまく機能しています。

(別のアクティビティから) メイン アクティビティに戻ると、double (cowCount) は増加し続けますが、refresh() メソッド (TextView を更新する) は同じメソッド内にあっても実行されません。

public void Income() {

    cowCount = cowCount + income;
    runOnUiThread(new Runnable() {
        public void run() {
            refresh();
            if(timerCancel == true) {
                Thread.interrupted();
            } 
        }

    });
    }

これは私のタイマーメソッドです:

public void startIncomeTimer() {
timerRunning = true;
Timer timer = new Timer();
timer.schedule(new Income(), 0, 100);
if(timerCancel == true) {
    timer.cancel();
}
}

アクティビティを終了するとき、timerRunning は false と示され、timerCancel は true と示されます。では、なぜ runOnUiThread() が正しく実行されないのでしょうか?

4

0 に答える 0