我看到这种使用" handler.posDelayed"没有真正的答案。
所以,我执行" handler.posDelayed"多次使用for循环。问题是,当我离开活动并重新启动它时,新的对象和处理程序中的旧对象也会被执行。我不知道如何从处理程序中停止旧对象。
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..
}
};
答案 0 :(得分:1)
首先,您应该使用removeCallbacks()
,而不是removeCallbacksAndMessages()
您的Runnables
说“再见”时,您似乎还应该删除Activity
,因此请尝试拨打removeCallbacks()
/ {{onPause
1}} / onStop