[英]How to stop handler.postDelayed in for-loop?
对于使用“ handler.posDelayed”的这种类型,我没有看到真正的答案。
因此,我使用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..
}
};
首先,您应该使用removeCallbacks()
,而不是removeCallbacksAndMessages()
也似乎你有悬而未决Runnables
当你的,你应该删除Activity
说“再见”,于是尝试调用removeCallbacks()
中onPause
/ onStop
/ onDestroy
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.