簡體   English   中英

為什么我的計時器會在我停止時使我的 android 活動崩潰?

[英]Why does my Timer crashes my android activity when I stop it?

我正在嘗試制作一個可以停止和重播計時器的切換按鈕,它工作得很好,直到我添加了一個名為“Set_BPM”的新方法。 它啟動並正確停止,當我在停止后嘗試再次啟動它時崩潰。

這是我使用計時器的課程:

public class Metronome {

int miliseconds;
Timer timer = new Timer();

public Metronome () { }

public void Set_BPM (int bpm) {
    miliseconds = (60000 / bpm);
}

public void Start (final Context context) {
    TimerTask timerTask = new TimerTask () {
        @Override
        public void run() {
            Sonidos.Tick(context);
        }
    };
    timer.schedule(timerTask, 1000, miliseconds);
}
public void Stop () {
    timer.cancel();
    timer.purge();
}
}

這就是我的稱呼:

public void Encender_Metronomo (View view) {
    if (tb_metronome.isChecked()) {
        metronome.Set_BPM(Integer.parseInt(et_bpm.getText().toString()));
        metronome.Start(this);
    }
    else
        metronome.Stop();

    Sonidos.Button(this);
}

在我的 Activity 之上還有這個對象:

private Metronome metronome = new Metronome();

這就是 Logcat 所說的

一旦你cancel()一個Timer ,你就不能用它來安排更多的任務。 引用文檔

一旦定時器被終止,它的執行線程就會優雅地終止,並且不再有任務被調度到它上面。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM