gpt4 book ai didi

java - 如何在for循环中停止handler.postDelayed?

转载 作者:行者123 更新时间:2023-12-02 04:34:55 27 4
gpt4 key购买 nike

对于这种使用“handler.posDelayed”的类型,我没有看到真正的答案。

因此,我使用 for 循环多次执行“handler.posDelayed”。问题是,当我离开 Activity 并重新启动它时,处理程序中的新对象和旧对象也会被执行。我不知道如何从处理程序中停止旧对象。

        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..
}
};

最佳答案

首先,您应该使用removeCallbacks(),而不是removeCallbacksAndMessages()

此外,您似乎还有待处理的 Runnables,当您的 Activity 说“再见”时,您应该将其删除,因此请尝试调用 removeCallbacks()onPause/onStop/onDestroy

关于java - 如何在for循环中停止handler.postDelayed?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30957621/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com