我沒有看到使用「handler.posDelayed」這種類型的真實答案。如何停止for循環中的handler.postDelayed?
所以,我用for循環多次執行「handler.posDelayed」。問題是,當我離開活動並重新啓動它時,新處理的對象和處理器中的舊對象也會執行。我不知道如何阻止處理程序中的舊對象。
private Handler handler = new Handler();
private void startHandler() {
handler.removeCallbacksAndMessages(runnable); // DOESN'T WORK
long time = 0;
for(int i = 0; i < balls.length; i++){
handler.postDelayed(runnable, time + i);
}
}
private Runnable runnable = new Runnable() {
@Override
public void run() {
// Some code..
}
};
你打電話'onPause' /'onStop' /'onDestroy'上的'removeCallbacksAndMessages'? – pskink
目前只在「startHandler」方法中。當我開始活動時調用該方法,因此我認爲這並不重要。我認爲問題在於,循環創建了多個可運行的腳本。@ pskink – Jeff
只有一個Runnable,它不會被複制 – pskink