我有一个runnable,我想每秒执行4次。这是我的runnable:
shoot = new Runnable() {
@Override
public void run() {
//Add bullet
parts.add(new Part(1, (int)(screenWidth*.01),
Part.TYPE_CIRCLE, (int)parts.get(activeShooter).center.x,
(int)parts.get(activeShooter).center.y));
parts.get(parts.size()-1).x_vel = (int)(Math.cos(parts.get(activeShooter).rotation)*bulletSpeed);
parts.get(parts.size()-1).y_vel = (int)(-Math.sin(parts.get(activeShooter).rotation)*bulletSpeed);
activeShooter = (activeShooter == numShooters) ? 0 : activeShooter + 1;
shooter.postDelayed(shoot, 250);
}
};
这是我的初始处理程序设置:
private void startBullets(){
Looper.prepare();
shooter = new Handler();
shooter.postDelayed(shoot, 250);
}
在我所有的其他项目中,我没有必要调用Looper.prepare,但如果我不在这个项目中,它会引发异常。我不知道为什么。我基本上从另一个项目中复制了一个工作代码(一个不需要我调用Looper.prepare())。任何人都可以看到为什么我的runnable没有执行?
答案 0 :(得分:0)
private void startBullets(){
shooter = new Handler();
shooter.postDelayed(shoot, 250);
}
确保在完成后通过Looper
退出Looper.quit()
。