牛を数えるアプリを作りました。基本的に牛の収入があります。私はタイマーを使用して収入を処理していますが、別の活動に切り替えてメインの活動に戻るまで、すべてがうまく機能しています。
(別のアクティビティから) メイン アクティビティに戻ると、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() が正しく実行されないのでしょうか?